Flutter

[Flutter]Dialogを不用意に閉じられないようにする

FlutterでDialogを表示させた後、不用意に閉じさせないようにする方法です。

  • Dialogの領域外をタップしても閉じさせないようにする。
  • Androidの場合、戻るボタンを使用しても閉じれてしまうので、閉じれないようにする。

やり方

Dialogの領域外をタップしても閉じさせないようにするために、showDialogメソッドの barrierDismissible をfalseにします。

戻るボタンを使用して閉じさせないようにするために、builder内で生成するWidgetをさらにWillPopScoteで囲み、onWillPopの戻り値をfalseにします。

await showDialog(
      /// Dialogの周囲の黒い部分をタップしても閉じないようにする
      barrierDismissible: false,
      context: context,
      builder: (_context) {
        return WillPopScope(
          /// 戻るボタンを無効にする
          onWillPop: () async => false,
          child: builder(_context),
        );
      },
    );

これでDialogが不用意に閉じられなくなります。

-Flutter

© 2023 かずのアプリときどきキャンプ飯 Powered by AFFINGER5