【问题标题】:Flutter: How can I catch a back button press to exit my app颤振:我怎样才能抓住后退按钮按下退出我的应用程序
【发布时间】:2020-08-31 14:48:50
【问题描述】:

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

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

我怎样才能捕捉到这一点,所以我可以询问用户是否要注销,然后显示登录屏幕?

感谢您的任何建议。

干杯,

保罗

【问题讨论】:

    标签: flutter


    【解决方案1】:

    您可以使用WillPopScope 小部件并更改onWillPop 参数来执行此操作。我发布的示例与您想要的类似,因为它显示了一个警报对话框,可以确定接下来会发生什么。 FlatButton onPressed 代码可能不是您正在寻找的代码,您必须根据您的实现来处理它 这是示例代码来自@AironTark 对this related question 的回答。

    @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),
              ),
            ],
          ),
        ),
      );
    }
    

    【讨论】:

    • 完美。非常感谢帮忙。效果很好!祝你有美好的一天。
    猜你喜欢
    • 2019-10-29
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    相关资源
    最近更新 更多