在Flutter中,我在异步任务期间为加载程序编写了一个简单的对话框。当我点击外面的对话框关闭时,我如何停止这种行为?
- 代码**
showDialog(
context: context,
builder: (_) => new Dialog(
child: new Container(
alignment: FractionalOffset.center,
height: 80.0,
padding: const EdgeInsets.all(20.0),
child: new Row(
mainAxisSize: MainAxisSize.min,
children: [
new CircularProgressIndicator(),
new Padding(
padding: new EdgeInsets.only(left: 10.0),
child: new Text("Loading"),
),
],
),
),
));
7条答案
按热度按时间f3temu5u1#
有一个名为
barrierDismissible
的属性,可以传递给showDialog
;这使得对话框在外部单击时无效或不可用z8dt9xmd2#
如果你想防止对话框在按下后退按钮时关闭,请参考以下代码。你必须将AlertDialog Package 在WillPopScope小部件中,并使用返回Future.value(false)的函数使onWillPop属性值。
cwtwac6a3#
仅添加此行
就像
2nc8po8w4#
屏障可拆除:错误,
按照我下面的描述使用此对话框。showDialog(barrierDismissible:false,生成器//代码//
kmb7vmvb5#
这将禁用设备导航
ruarlubt6#
始终使用get等顶级Flutter封装
ymzxtsji7#
如果你没有使用showDialog,或者你使用的是GestureDetector,有一个简单的方法,我刚刚做了,只要把一个GestureDetector放在另一个里面,然后设置onTap动作,如果这是你在两个GestureDetector的情况下,有一个区别,你要把一个动作,在另一个你可以只是让它空,就像这样。