在showDialog中Flutter Navigator.of(context).pop(),在ios中关闭整个应用程序

Posted

技术标签:

【中文标题】在showDialog中Flutter Navigator.of(context).pop(),在ios中关闭整个应用程序【英文标题】:Flutter Navigator.of(context).pop() in showDialog, close full app in ios 【发布时间】:2021-06-13 00:47:54 【问题描述】:

我的应用程序的 ios 版本有问题,这是代码。

void showErrorAlert(BuildContext context, String msj) 
  showDialog(
    context: context,
    builder: (context) 
      return AlertDialog(
        title: Text('Error'),
        content: Text(msj),
        actions: [
          TextButton(
            onPressed: () => Navigator.of(context).pop(),
            child: Text('ok'),
          )
        ],
      );
    ,
  );

android 中的 Navigator.of(context).pop() 运行良好,关闭对话框一切正常,但在 ios 中,当代码调用 'Navigator.of(context).pop 时,整个应用程序将关闭()',有人知道我该怎么做才能只关闭 ios 中的对话框吗?

P.D.:我在输出控制台中没有任何错误或警告,即使应用程序关闭 P.D.2:我已经尝试将 .pop 更改为此 'Navigator.of(context, rootNavigator: true).pop('dialog')' 但它不起作用

【问题讨论】:

警告是什么? 对不起,这是'我没有任何错误或警告'* 【参考方案1】:

尝试切换到 stable 分支,因为这是一个已报告的错误。使用

flutter channel stable

编辑

该死的,这个答案被保存为草稿,我关闭了我的笔记本电脑。我才意识到你已经解决了它

【讨论】:

【参考方案2】:

使用

Navigator.of(context,rootNavigator:true).pop()

【讨论】:

【参考方案3】:

SystemNavigator.pop() 是退出应用的推荐方式。

【讨论】:

【参考方案4】:

我常用的是

Navigator.pop(context);

它对我来说很好用。添加 .pop() 时遇到类似问题

【讨论】:

以上是关于在showDialog中Flutter Navigator.of(context).pop(),在ios中关闭整个应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Flutter中showDialog()后关闭Dialog

在showDialog中Flutter Navigator.of(context).pop(),在ios中关闭整个应用程序

Flutter showDialog 如何刷新 setStatus

flutter 改变数据,showDialog对话框内的UI不更新

如何在 Flutter 中处理这个 Text 小部件?

Flutter 创建自己的对话框,不使用任何包!