颤振:如何抓住按下后退按钮退出我的应用程序



我正在开发一个应用程序,主要只向用户显示来自Web服务的信息(由其管理员创建的信息(。在抽屉菜单上有5个屏幕来显示不同的信息。

用户登录后,我使用 Navigator 通过 pushReplace 在屏幕之间移动。这意味着当前屏幕始终位于屏幕堆栈的底部。如果用户在其设备上按后退按钮,则应用将立即存在。

我怎样才能捕获它,以便我可以询问用户是否要注销,然后显示登录屏幕?

感谢您的任何建议。

干杯

保罗

您可以使用WillPopScope小部件并更改onWillPop参数来执行此操作。我发布的示例执行的操作类似于您想要的操作,因为它显示了一个警报对话框,可以确定接下来会发生什么。FlatButtononPressed代码可能不完全是您要查找的内容,您必须根据您的实现进行处理 这是示例代码来自@AironTark相关问题的答案。

@override
Widget build(BuildContext context) {
return WillPopScope(
child: Scaffold(...),
onWillPop: () => showDialog<bool>(
context: context,
builder: (c) => AlertDialog(
title: Text('Warning'),
content: Text('Do you really want to exit'),
actions: [
FlatButton(
child: Text('Yes'),
onPressed: () => Navigator.pop(c, true),
),
FlatButton(
child: Text('No'),
onPressed: () => Navigator.pop(c, false),
),
],
),
),
);
}

最新更新