【发布时间】:2019-06-17 19:56:11
【问题描述】:
我有一个需要从屏幕 1 移动到屏幕 2 的应用程序......现在当用户按下后退按钮时......它应该显示一个对话框......如果用户按下是,它必须退出...... .任何帮助?上面的解决方案不起作用
【问题讨论】:
我有一个需要从屏幕 1 移动到屏幕 2 的应用程序......现在当用户按下后退按钮时......它应该显示一个对话框......如果用户按下是,它必须退出...... .任何帮助?上面的解决方案不起作用
【问题讨论】:
您似乎可以使用WillPopScope。您还需要传递一个回调函数,该函数将指示按下后退按钮会发生什么。 在您的情况下,您可以添加代码以显示 AlertDialog,这将要求用户确认退出。
您可以简单地将 Scaffold 包裹在 WillPopScope 中。
例子:
Widget build(BuildContext context) {
return WillPopScope(
child: /*Your scaffold widget*/
onWillPop: () {
return showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return AlertDialog(
title: Text("Confirm Exit"),
content: Text("Are you sure you want to exit?"),
actions: <Widget>[
FlatButton(
child: Text("YES"),
onPressed: () {
SystemNavigator.pop();
},
),
FlatButton(
child: Text("NO"),
onPressed: () {
Navigator.of(context).pop();
},
)
],
);
}
);
return Future.value(true);
},
【讨论】: