Flutter BottomNavigationBar組件
BottomNavigationBar是底部導航條,可以讓我們定義底部Tab切換,bottomNatigationBar是Scaffold組件的引數,

BottomNavigationBar常見屬性
| 屬性 | 說明 |
| items | List<BottomNavigationBarItem> 底部導航條按鈕集合 |
| iconSize | icon |
| currentIndex | 默認選中第幾個 |
| onTap | 選中變化回呼函式 |
| onTap: (int index){ setState(() { print("Tagwjlis index = ${index}"); this._currentIndex = index; }); }, | |
| fixedColor | 選中的顏色 |
| type | BottomNavigationBarType.fixed //配置底部tabs可以有多個按鈕
BottomNavigationBarType.shifting |
實作一個頁面切換功能目錄

main.dart
import 'package:flutter/material.dart';
import 'package:stack_align_positioned/pages/Tabs.dart';
import 'reg/listData.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
int _curentIndex = 0;
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Tabs(),
);
}
}
Tabs.dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:stack_align_positioned/main.dart';
import 'package:stack_align_positioned/pages/tabs/CategoryPages.dart';
import 'package:stack_align_positioned/pages/tabs/HomePage.dart';
import 'package:stack_align_positioned/pages/tabs/SettingsPages.dart';
class Tabs extends StatefulWidget{
@override
State<StatefulWidget> createState() {
return _TabsState();
}
}
class _TabsState extends State<Tabs>{
int _currentIndex = 0;
List _listPageData = [ //頁面的鏈表
HomePages(),
CategoryPages(),
SettingsPages()
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Flutter BottomNavigationBar"),
),
body: this._listPageData[_currentIndex],
bottomNavigationBar: BottomNavigationBar(
currentIndex: this._currentIndex,//配置對應的索引值選中
onTap: (int index){//index 表示選擇選項
setState(() {
print("Tagwjlis index = ${index}");
this._currentIndex = index;
});
},
iconSize: 36.0, //icon的大小
fixedColor: Colors.red, //選中顏色
type: BottomNavigationBarType.fixed,//配置底部tabs可以有多個按鈕
items: [
BottomNavigationBarItem(
icon: Icon(Icons.home),
title: Text("首頁")
),
BottomNavigationBarItem(
icon: Icon(Icons.category),
title: Text("分類")
),
BottomNavigationBarItem(
icon: Icon(Icons.settings),
title: Text("設定")
)
],
),
);
}
}
HomePages.dart
import 'package:flutter/cupertino.dart';
class HomePages extends StatefulWidget{
@override
State<StatefulWidget> createState() {
return _HomeState();
}
}
class _HomeState extends State<HomePages>{
@override
Widget build(BuildContext context) {
return Center(
child: Text("Home Text"),
);
}
}
CategoryPages.dart
import 'package:flutter/cupertino.dart';
class CategoryPages extends StatefulWidget{
@override
State<StatefulWidget> createState() {
return _CategorysStae();
}
}
class _CategorysStae extends State<CategoryPages>{
@override
Widget build(BuildContext context) {
return Center(
child: Text("CategoryPages center"),
);
}
}
SettingsPages.dart
import 'package:flutter/cupertino.dart';
class SettingsPages extends StatefulWidget{
@override
State<StatefulWidget> createState() {
return _SettingsStae();
}
}
class _SettingsStae extends State<SettingsPages>{
@override
Widget build(BuildContext context) {
return Center(
child: Text("SettingsPages center"),
);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/198107.html
標籤:其他
