スイッチへのFlutter-下部のナビゲーションバー

プログラムのエントリ

インポート 'パッケージ:フラッター/ 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コンテキスト){ 
    リターン(足場
      :アプリケーションバー(アプリケーションバー
        のタイトル:テキスト( 'インデックス' )、 
      )、
      ボディ:センター(
        子:テキスト( 'インデックス'を)、 
      )、
    ); 
  } 
}

 

おすすめ

転載: www.cnblogs.com/ssjf/p/11771752.html