Flutter底部导航 #
一、BottomNavigationBar #
1.1 基本用法 #
dart
class MainPage extends StatefulWidget {
@override
State<MainPage> createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
int _currentIndex = 0;
final List<Widget> _pages = [
HomePage(),
SearchPage(),
ProfilePage(),
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: _pages[_currentIndex],
bottomNavigationBar: BottomNavigationBar(
currentIndex: _currentIndex,
onTap: (index) {
setState(() {
_currentIndex = index;
});
},
items: [
BottomNavigationBarItem(
icon: Icon(Icons.home),
label: 'Home',
),
BottomNavigationBarItem(
icon: Icon(Icons.search),
label: 'Search',
),
BottomNavigationBarItem(
icon: Icon(Icons.person),
label: 'Profile',
),
],
),
);
}
}
1.2 样式设置 #
dart
BottomNavigationBar(
type: BottomNavigationBarType.fixed,
selectedItemColor: Colors.blue,
unselectedItemColor: Colors.grey,
selectedFontSize: 12,
unselectedFontSize: 12,
items: [...],
)
二、TabBar #
2.1 基本用法 #
dart
DefaultTabController(
length: 3,
child: Scaffold(
appBar: AppBar(
bottom: TabBar(
tabs: [
Tab(text: 'Tab 1'),
Tab(text: 'Tab 2'),
Tab(text: 'Tab 3'),
],
),
),
body: TabBarView(
children: [
Page1(),
Page2(),
Page3(),
],
),
),
)
三、总结 #
3.1 核心组件 #
| 组件 | 说明 |
|---|---|
| BottomNavigationBar | 底部导航栏 |
| TabBar | 标签栏 |
| TabBarView | 标签内容 |
3.2 下一步 #
让我们学习 路由守卫!
最后更新:2026-03-28