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が不用意に閉じられなくなります。