Flutter中如何阻止点击对话框外部时关闭对话框?
解决Flutter加载对话框点击外部关闭的问题
嘿,这个问题很好解决!你只需要在showDialog方法里加一个barrierDismissible参数,把它设置为false就可以阻止点击对话框外部关闭弹窗的行为了。
默认情况下,showDialog的barrierDismissible参数值是true,这就是为什么点击遮罩层(对话框外部)会自动关闭弹窗的原因。将它改为false后,只有通过代码主动调用关闭逻辑(比如Navigator.pop)才能关闭这个加载对话框,完美适配异步任务的场景。
下面是修改后的完整代码:
showDialog( context: context, barrierDismissible: false, // 核心参数,阻止外部点击关闭 builder: (_) => Dialog( child: Container( alignment: FractionalOffset.center, height: 80.0, padding: const EdgeInsets.all(20.0), child: Row( mainAxisSize: MainAxisSize.min, children: [ CircularProgressIndicator(), Padding( padding: EdgeInsets.only(left: 10.0), child: Text("Loading"), ), ], ), ), ) );
另外补充一下:当你的异步任务完成后,记得调用Navigator.of(context).pop()来手动关闭这个对话框哦~
内容的提问来源于stack exchange,提问作者Magesh Pandian
相关产品推荐
相关产品推荐

