プログラムのエントリ
インポート 'パッケージ:フラッター/ material.dart' ; インポート 'botton_navigation_widget.dart' ; ボイドメイン()=> runApp(MyAppを())。 クラス MyAppには、拡張StatelessWidget { @Override ウィジェットは{(BuildContextコンテキスト)を構築 返しMaterialApp( :タイトル 'デモ' 、 テーマ:ThemeData.light()、 ホーム:BottomNavigationWidget()// 導航ウィジェット )。 } }
ナビゲーションウィジェット
インポート 'パッケージ:フラッター/ material.dart' ; インポート 'index.dart' ; インポート 'campus_network.dart' ; インポート 'curriculum.dart' ; インポート 'personal_center.dart' ; クラス BottomNavigationWidgetは延び{StatefulWidgetを @Override _BottomNavigationWidgetState createState() => _BottomNavigationWidgetState(); } クラス _BottomNavigationWidgetStateは延び国は<BottomNavigationWidget> { 最終 _BottomNavigationColor = Colors.blue。 //今すぐインデックス int型 _currentIndex = 0 ; // ウィジェットセットの 一覧<ウィジェット>リスト= リスト(); // 初期化メソッドをオーバーライドし、ウィジェットのコレクションに移動する必要が @Override 無効InitState(){ リスト // ..かなり。一覧 (IndexScreen())..add ..add(CurriculumScreenを()) ..add(CampusNetworkScreen()) ..add(PersonalCenterScreen()); スーパー.initState(); } @Override ウィジェットビルド(BuildContextコンテキスト){ 戻り足場( リスト[_currentIndex]:本体 bottomNavigationBar:bottomNavigationBarを( 商品:[ BottomNavigationBarItem( アイコン:アイコン( Icons.crop_3_2、 色:_BottomNavigationColor、 )、 タイトル:テキスト( '首頁' )、 )、 BottomNavigationBarItem( アイコン:アイコン( Icons.crop_3_2、 色:_BottomNavigationColor、 )、 タイトル:テキスト( '課程' )、 )、 BottomNavigationBarItem( アイコン:アイコン( Icons.crop_3_2、 色:_BottomNavigationColor、 )、 タイトル:テキスト( "BRANCHネットワーク" )、 )、 BottomNavigationBarItem( アイコン:アイコン( Icons.crop_3_2、 カラー:_BottomNavigationColor、 )、 タイトル:テキスト( "個人センター" )、 )、 ]、 // ハイライト currentIndexを:_currentIndex 、 // 現在のナビゲーションは添字クリックされる更新 でONTAPを:(int型のインデックス){ SETSTATE((){ _currentIndex = ;指数 ;}) } ) )。 } }
ウィジェットをジャンプする必要があります
インポート 'パッケージ:フラッター/ material.dart' ; クラス IndexScreenは拡張StatelessWidget { @Override ウィジェットのビルド(BuildContextコンテキスト){ リターン(足場 :アプリケーションバー(アプリケーションバー のタイトル:テキスト( 'インデックス' )、 )、 ボディ:センター( 子:テキスト( 'インデックス'を)、 )、 ); } }