【问题标题】:In Flutter, when wrapping the whole app inside WillPopScope, onWillPop is not called在 Flutter 中,将整个应用程序包装在 WillPopScope 中时,不会调用 onWillPop
【发布时间】:2020-12-04 00:59:56
【问题描述】:

当在 android 上按下返回按钮时,应用程序将被终止。我希望我的整个应用程序具有当按下后退按钮时,用户会收到通知要求确认的功能。如果他们确认然后最小化应用程序。所以我试图将整个“MaterialApp”作为一个孩子包装在“WillPopScope”中。但是没有触发“onWillPop”。

void main() async {
  runApp(
    WillPopScope(
      child: MaterialApp(
        title: 'Test',
        home: Frame(),
      ),
      onWillPop: () async {
        print('will pop!!!!!!!!!');
        return false;
      },
    ),
  );
}

【问题讨论】:

  • 我什至不确定这是颤振功能/问题。如果你能做到这一点,你就可以有效地阻止用户关闭你的应用程序。我认为操作系统不会允许这样做。
  • 我不认为这是原因,因为您可以用WillPopScope 包装每个页面以实现相同的目标。我猜WillPopScope 可能需要来自MaterialApp 的东西。

标签: flutter dart


【解决方案1】:

你不应该用这个来包围你的整个应用程序。您应该使用您希望运行该功能的每页小部件。为您的页面环绕您的脚手架

【讨论】:

    猜你喜欢
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多