インポート 'パッケージ:フラッター/ 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