Flutter底部导航栏插件wave_bottom_bar的使用
Flutter底部导航栏插件wave_bottom_bar的使用
WaveBottomBar
这是一个底部导航栏小部件,它可以像波浪一样平滑地移动到活动位置,并且提供了许多属性供你配置。这个包小巧且简单,欢迎使用。
Demo
安装
在pubspec.yaml
文件中添加依赖:
dependencies:
wave_bottom_bar: ^1.6.1
简单使用
以下是一个简单的使用示例:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _selectedIndex = 0;
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text('当前选中: $_selectedIndex'),
),
bottomNavigationBar: WaveBottomBar(
items: BarItem.simpleUse,
onTap: (index) {
_onItemTapped(index);
},
),
);
}
}
在这个示例中,我们创建了一个简单的应用,其中包含一个WaveBottomBar
。当用户点击底部导航栏上的不同选项时,会更新选中的索引,并在页面中心显示当前选中的索引。
完整示例代码
以下是完整的示例代码,包括多个页面切换的实现:
import 'package:flutter/material.dart';
import 'page/common.dart';
import 'page/home.dart';
import 'page/use.dart';
import 'page/wave.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
routes: {
"/home": (context) => HomePage(),
"/common": (context) => CommonPage(),
"/wave": (context) => WavePage(),
"/use": (context) => UsePage(),
},
home: HomePage(),
);
}
}
class HomePage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('首页'),
),
body: Center(
child: Text('这是首页'),
),
);
}
}
class CommonPage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('通用页'),
),
body: Center(
child: Text('这是通用页'),
),
);
}
}
class WavePage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Wave页'),
),
body: Center(
child: Text('这是Wave页'),
),
);
}
}
class UsePage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('使用页'),
),
body: Center(
child: Text('这是使用页'),
),
);
}
}
更多关于Flutter底部导航栏插件wave_bottom_bar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter底部导航栏插件wave_bottom_bar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter中使用wave_bottom_bar
插件来创建底部导航栏的示例代码。这个插件提供了一个具有波浪动画效果的底部导航栏,可以为你的应用增添一些视觉上的吸引力。
首先,确保你已经在pubspec.yaml
文件中添加了wave_bottom_bar
依赖:
dependencies:
flutter:
sdk: flutter
wave_bottom_bar: ^latest_version # 请替换为实际的最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,你可以在你的Flutter应用中这样使用wave_bottom_bar
:
import 'package:flutter/material.dart';
import 'package:wave_bottom_bar/wave_bottom_bar.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Wave Bottom Bar Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin {
int _selectedIndex = 0;
final List<WaveItem> _waveItems = [
WaveItem(
icon: Icons.home,
title: 'Home',
color: Colors.blue,
),
WaveItem(
icon: Icons.search,
title: 'Search',
color: Colors.green,
),
WaveItem(
icon: Icons.add,
title: 'Add',
color: Colors.amber,
),
WaveItem(
icon: Icons.account_circle,
title: 'Profile',
color: Colors.red,
),
];
void _onItemTap(int index) {
setState(() {
_selectedIndex = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text('You have selected: ${_waveItems[_selectedIndex].title}'),
),
bottomNavigationBar: WaveBottomBar(
currentIndex: _selectedIndex,
onItemTap: _onItemTap,
items: _waveItems,
fixedColor: Colors.white,
notchedShape: RoundedNotchedRectangle(),
animationDuration: Duration(milliseconds: 500),
),
);
}
}
代码解释
-
依赖导入:首先,我们导入了
flutter/material.dart
和wave_bottom_bar/wave_bottom_bar.dart
。 -
主应用:
MyApp
类是我们的主应用类,它包含一个MaterialApp
,设置了应用的主题和主页。 -
主页:
MyHomePage
是一个有状态的组件,它管理底部导航栏的选中状态。 -
WaveItem列表:我们定义了一个
WaveItem
列表,每个WaveItem
包含图标、标题和颜色。 -
选中项处理:
_onItemTap
方法用于处理底部导航栏项的点击事件,更新选中状态。 -
构建UI:在
build
方法中,我们返回一个Scaffold
,其中包含一个居中的文本(显示当前选中的导航项标题),以及一个WaveBottomBar
。 -
WaveBottomBar属性:
currentIndex
:当前选中的导航项索引。onItemTap
:点击事件处理函数。items
:WaveItem
列表。fixedColor
:选中项的颜色。notchedShape
:底部导航栏的形状(这里使用了RoundedNotchedRectangle
)。animationDuration
:动画持续时间。
通过这段代码,你就可以在你的Flutter应用中实现一个具有波浪动画效果的底部导航栏了。希望这对你有帮助!