フラッター処理ダイアログクリックイベントコールバック

フラッター処理ダイアログクリックイベントコールバック

インポート 'パッケージ:フラッター/ material.dart' ;
インポート 'パッケージ:scoped_model / scoped_model.dart' ; 

ボイドメイン(){ 
  runApp(新しいRootLayout())。
} 

クラス RootLayoutは延びStatefulWidget { 
  @Override 
  状態 <StatefulWidget> createState(){
     戻り 新しいRootLayoutMは(); 
  } 
} 

クラス RootLayoutMが延びている状態が<RootLayout> 実装OnDialogClickListener { 
  文字列str = "ショー単純なダイアログを" 
  文字列showMsg=「簡単なダイアログを表示します」

  @Override 
  ボイドOnOK呼び出し(){ 
    プリント( 'OnOK呼び出し' )。
    SETSTATE((){ 
      showMsg = STR + "をクリックOnOK呼び出し" ; 
    }); 
  } 

  @Override 
  ボイドonCancel(){ 
    プリント( 'onCancelは' )。
    SETSTATE((){ 
      showMsg = STR + "をクリックonCancel" ; 
    }); 
  } 

  @Overrideの
  ウィジェットのビルド(BuildContextコンテキスト){ 
    返す 新しいMaterialApp( ホーム新しい足場(
      本体:新しいですセンター(
        子:
            新しいテキスト(showMsg、スタイル: TEXTSTYLE(色:カラー(0xFF00FF00 )))、 
      )、
      floatingActionButton:新しい MyFloat()、 
    )); 
  } 
} 

// 定义一个抽象类
抽象 クラスOnDialogClickListener {
   ボイドOnOK呼び出し(); 

  無効onCancelを(); 
} 

クラス MyFloatは延びStatelessWidget {
   最終OnDialogClickListenerコールバックを。

  MyFloat(この.callback)。

  _showMyMaterialDialog(BuildContextコンテキスト){
    印刷( "_showMyMaterialDialog"); 
    にShowDialog(
        コンテキスト:コンテキスト、
        ビルダー:(コンテキスト){ 
          返す 新しい新AlertDialog( タイトル新しい新しいテキスト(「タイトル」)、 コンテンツ新しい新しいテキスト(「コンテンツの内容内容内容内容内容を」、)
            アクション: <ウィジェット> [
               新しい新しいFlatButton(
                onPressed:(){ 
                  callback.onOk(); 
                  Navigator.of(コンテキスト).pop(); 
                }、
                子供:新規新しいテキスト( "確認" )、 
              )、
              新しい新FlatButtonは(
                onPressed:(){ 
                  callback.onCancel()。
                  Navigator.of(コンテキスト).pop(); 
                }、
                子供:
  }新しいテキスト( "取消" )、 
              )、
            ]、
          ); 
        }); 
  } 

  @Overrideの
  ウィジェットのビルド(BuildContextコンテキスト){ 
    // TODO:ビルドが実装
    返す 新しいFloatingActionButton(
        子:新しいテキスト( "ShowDialogをする" )、
        onPressed:(){ 
          _showMyMaterialDialog(コンテキスト); 
        }); 
}

 

おすすめ

転載: www.cnblogs.com/mingfeng002/p/11586695.html
おすすめ