ポップを使用するのは簡単SimpleDialogでフラッター

インポート 'パッケージ:フラッター/ material.dart' ;
インポート「ダーツ:非同期」; 

列挙オプション{ 
  A、B、C 
} 

クラス SimpleDialogDemoは延びStatefulWidget { 
  @Override 
  _SimpleDialogDemoState createState() => _SimpleDialogDemoState()と、
} 

クラス _SimpleDialogDemoStateは延びていない状態<SimpleDialogDemo> { 
  文字列_choice = '何を' 
  
  将来_openSimpleDialog()非同期{ 
    最終オプション= 待つにShowDialog( 
      コンテキスト:コンテキストを
      ビルダ:(BuildContextコンテキスト){ 
        リターンSimpleDialog(
          タイトル:テキスト( 'SimpleDialog' )、
          子供: <ウィジェット> [ 
            SimpleDialogOption(
              子:テキスト( 'オプションA' )、
              onPressed:(){ 
                Navigator.pop(文脈、Option.A); 
              } 
            )、
            SimpleDialogOption (
              子:テキスト( 'オプションB' )、
              onPressed:(){ 
                Navigator.pop(文脈、Option.B); 
              } 
            )、
            SimpleDialogOption(
              子:テキスト( 'オプションCは' )、
              onPressed:(){ 
                Navigator.pop(文脈、Option.C);
              } 
            
          ]、
          標高: = 'B'  100.0 
          
        )。
      } 
    ); 
    
    スイッチ(オプション){
       ケースOption.A:
        SETSTATE((){ 
          _choice = 'A' ; 
        }); 
        破ります;
      ケースOption.B:
        SETSTATE((){ 
          _choice 
        })。
        破ります;
      ケースOption.C:
        SETSTATE((){ 
          _choice = 'C' ; 
        }); 
        破ります;
      デフォルト
    } 
  } 
  
  @Overrideの
  ウィジェットビルド(BuildContextコンテキスト){ 
    戻り足場(
      アプリケーションバー:アプリケーションバー(
        タイトル:テキスト( 'SimpleDialogDemo' )、
        標高: 0.0 
      )、
      本体:コンテナ(
        パディング:EdgeInsets.all( 16.0)、
        子供:カラム(
          mainAxisAlignment:MainAxisAlignment.center、
          子供: <ウィジェット> [ 
            テキスト( 'あなたの選択である:$の_choice' )、
            行(
              mainAxisAlignment:MainAxisAlignment.center、
              子供: <ウィジェット> [ 
              ]、 
            )、
          ]、 
        )、
      )、 
      floatingActionButton: FloatingActionButton(
        子:アイコン(Icons.format_list_numbered)、
        onPressed:_openSimpleDialog、 
      )、
    ); 
  } 
}

レンダリング:

APIドキュメント:https://api.flutter.dev/flutter/material/SimpleDialog-class.html

おすすめ

転載: www.cnblogs.com/loaderman/p/11301033.html