我有一个AlertDialog()
,它的barrierDismissible
已设置为false
。但是,当用户按下android设备上的后退按钮时,AlertDialog将关闭。如何完全防止用户关闭AlertDialog()?
这是我到目前为止所做的:
return showDialog<bool>(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Title'),
content: Text('This is the alert dialog content'),
actions: <Widget>[
FlatButton(
child: Text('ok'),
onPressed: () {
Navigator.of(context).pop();
print('ok you win');
},
),
],
);
},
);
尝试使用WillPopScope()
处理WillPopScope()
事件
onBackPressed()
您可以将WillPopScope用作AlertDialog的父级
showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return WillPopScope(
onWillPop: () {return Future.value(false);},
child: return AlertDialog(
title: Text('Title'),
content: Text('This is the alert dialog content'),
actions: <Widget>[
FlatButton(
child: Text('ok'),
onPressed: () {
Navigator.of(context).pop();
print('ok you win');
},
),
],
),
);
});