Flutter底部导航栏插件nav_bottom_bar的使用
Flutter底部导航栏插件nav_bottom_bar的使用
简单明了的底部导航栏。
安装
在 pubspec.yaml
文件中添加 nav_bottom_bar
依赖:
dependencies:
flutter:
sdk: flutter
nav_bottom_bar: version
引入库
在 Dart 文件中引入 nav_bottom_bar
库:
import 'package:nav_bottom_bar/nav_bottom_bar.dart';
示例代码
以下是一个完整的示例代码,展示了如何使用 nav_bottom_bar
插件来创建一个底部导航栏。
import 'package:flutter/material.dart';
import 'package:nav_bottom_bar/nav_bottom_bar.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String body = "Home"; // 当前显示的页面文本
int index = 0; // 当前选中的索引
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('示例应用'),
),
body: Stack(
children: [
Center(
child: Text(
body,
style: TextStyle(fontSize: 32),
),
),
Positioned(
// 调整按钮位置
bottom: 15,
child: NavBottomBar(
showBigButton: true, // 是否显示大按钮
bigIcon: Icons.add, // 大按钮图标
currentIndex: index, // 当前选中的索引
btnOntap: () {
setState(() {
body = "大按钮按下";
});
},
buttonPosition: ButtonPosition.end, // 大按钮位置
children: [
NavIcon(
icon: Icons.home, // 首页图标
activecolor: Colors.red, // 激活颜色
onTap: () {
setState(() {
index = 0;
body = "首页";
});
},
),
NavIcon(
icon: Icons.history, // 历史图标
activecolor: Colors.green, // 激活颜色
onTap: () {
setState(() {
index = 1;
body = "历史";
});
},
),
NavIcon(
icon: Icons.notifications, // 通知图标
onTap: () {
setState(() {
index = 2;
body = "通知";
});
},
),
NavIcon(
icon: Icons.person, // 个人中心图标
onTap: () {
setState(() {
index = 3;
body = "个人中心";
});
},
),
],
),
),
],
),
),
);
}
}
更多关于Flutter底部导航栏插件nav_bottom_bar的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter底部导航栏插件nav_bottom_bar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
nav_bottom_bar
是一个用于 Flutter 的底部导航栏插件,它允许你轻松地在应用程序中实现一个带有图标和标签的底部导航栏。以下是如何使用 nav_bottom_bar
插件的步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 nav_bottom_bar
插件的依赖:
dependencies:
flutter:
sdk: flutter
nav_bottom_bar: ^1.0.0 # 请检查最新版本
然后运行 flutter pub get
来获取依赖。
2. 导入插件
在你的 Dart 文件中导入 nav_bottom_bar
:
import 'package:nav_bottom_bar/nav_bottom_bar.dart';
3. 创建底部导航栏
接下来,你可以使用 NavBottomBar
来创建一个底部导航栏。通常,你会将 NavBottomBar
放在 Scaffold
的 bottomNavigationBar
属性中。
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _selectedIndex = 0;
final List<Widget> _pages = [
Page1(),
Page2(),
Page3(),
];
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: _pages[_selectedIndex],
bottomNavigationBar: NavBottomBar(
items: const <NavBottomBarItem>[
NavBottomBarItem(
icon: Icon(Icons.home),
label: 'Home',
),
NavBottomBarItem(
icon: Icon(Icons.business),
label: 'Business',
),
NavBottomBarItem(
icon: Icon(Icons.school),
label: 'School',
),
],
currentIndex: _selectedIndex,
onTap: _onItemTapped,
),
);
}
}
4. 自定义导航栏
NavBottomBar
提供了多种自定义选项,例如:
selectedColor
: 选中项的颜色。unselectedColor
: 未选中项的颜色。backgroundColor
: 底部导航栏的背景颜色。elevation
: 底部导航栏的阴影高度。
你可以在 NavBottomBar
的构造函数中设置这些属性:
bottomNavigationBar: NavBottomBar(
items: const <NavBottomBarItem>[
NavBottomBarItem(
icon: Icon(Icons.home),
label: 'Home',
),
NavBottomBarItem(
icon: Icon(Icons.business),
label: 'Business',
),
NavBottomBarItem(
icon: Icon(Icons.school),
label: 'School',
),
],
currentIndex: _selectedIndex,
onTap: _onItemTapped,
selectedColor: Colors.blue,
unselectedColor: Colors.grey,
backgroundColor: Colors.white,
elevation: 10.0,
),
5. 处理页面切换
当用户点击底部导航栏的某个项时,onTap
回调会被触发,你可以在这个回调中更新当前选中的索引,并切换到对应的页面。
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
}