Flutter下部ナビゲーションバーBottomNavigationBar
13536 ワード
BottomNavigationBarは下部のナビゲーションバーで、一般的には複数のビューで選択するために適用されます.Androidの下部ナビゲーションバーに類比し、TextテキストとIconアイコンからなる.
ここでは、表示内容にコンテナを提供するリストを作成します.
下部のナビゲーションバーのコンポーネント:
下部のナビゲーションバータブが選択されているときの色の変化を指定します.
タブが選択されているときに呼び出されます.
を通じてonItemTappedメソッドでは、現在選択されているタブの下付きindexを_に割り当てます.selectedIndex、タブを切り替える効果:
完全なコードは次のとおりです.
ここでは、表示内容にコンテナを提供するリストを作成します.
static const List<Widget> _widget=<Widget>[
Text('Index 0: '),Text("Index 1: "),Text("Index 2: ")];
下部のナビゲーションバーのコンポーネント:
bottomNavigationBar: BottomNavigationBar(items: const<BottomNavigationBarItem>[
BottomNavigationBarItem(icon: Icon(Icons.home),title: Text(' ')),
BottomNavigationBarItem(icon: Icon(Icons.contacts),title: Text(' ')),
BottomNavigationBarItem(icon: Icon(Icons.build),title: Text(' '))
]
下部のナビゲーションバータブが選択されているときの色の変化を指定します.
selectedItemColor: Colors.amber
タブが選択されているときに呼び出されます.
onTap: _onItemTapped
を通じてonItemTappedメソッドでは、現在選択されているタブの下付きindexを_に割り当てます.selectedIndex、タブを切り替える効果:
void _onItemTapped(int index){
setState(() {
_selectedIndex=index;
});
}
完全なコードは次のとおりです.
class MyStatefulWidget extends StatefulWidget{
MyStatefulWidget({Key key}) : super(key: key);
// widget
_MyStatefulWidgetState createState()=>_MyStatefulWidgetState();
}
class _MyStatefulWidgetState extends State<MyStatefulWidget>{
int _selectedIndex=0;// 0
//
static const List<Widget> _widget=<Widget>[
Text('Index 0: '),Text("Index 1: "),Text("Index 2: ")];
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(appBar: AppBar(title: Text(' '),),
// List index
body: Center(child: _widget.elementAt(_selectedIndex),),
bottomNavigationBar: BottomNavigationBar(items: const<BottomNavigationBarItem>[
BottomNavigationBarItem(icon: Icon(Icons.home),title: Text(' ')),
BottomNavigationBarItem(icon: Icon(Icons.contacts),title: Text(' ')),
BottomNavigationBarItem(icon: Icon(Icons.build),title: Text(' '))
],
currentIndex: _selectedIndex,
selectedItemColor: Colors.amber,
//
onTap: _onItemTapped,),);
}
/**
* index _selectedIndex,
*/
void _onItemTapped(int index){
setState(() {
// _selectedIndex
_selectedIndex=index;
});
}
}