【问题标题】:Remove a specific dialog in Flutter删除 Flutter 中的特定对话框
【发布时间】:2021-02-27 19:11:15
【问题描述】:

在应用程序中,我们有各种对话框。以一种情况为例:

用户单击一个按钮并获得一个“加载对话框”。 客户端以“通知对话框”的形式获得新闻通知。 用户获取加载的数据并被转发到显示数据的页面。

所以“历史”/“层次结构”应该是 [“加载对话框”、“通知对话框”、“数据页”]

加载数据后,我们希望删除历史记录中另一个对话框下方和数据页面下方的“加载对话框”。

如何让 Flutter 中的特定对话框关闭?

当前显示数据的页面有一个命名路由,对话框是通过 showDialog(...) 打开的

【问题讨论】:

  • 不要使用showDialog,在stack widget中显示Dialogue,满足条件时隐藏!!

标签: flutter dialog


【解决方案1】:

您应该能够使用Navigator.of(context).pop() 删除来自showDialog(...) 的对话框。因此,如果您在推送新页面之前调用它,它将起作用。你需要确保你有一个构建上下文可以使用,否则它会起作用。

这也适用于推送到导航器堆栈的任何内容,例如通过showModalBottomSheet(...) 的模态底部工作表。

【讨论】:

  • 问题中的问题是我们要保留更高级别的对话框(通知对话框)和新推送的页面...在新页面和新推送的页面之间可能还有一堆其他对话框加载对话框...
  • 好吧,也许你应该试试 Navigator 2.0(Flutter 中处理导航的经典方式的新替代方案)。可以在这里找到一个很好的教程:medium.com/flutter/…。它允许List 的页面,然后您可以以任何您喜欢的方式进行更新。
猜你喜欢
  • 2019-04-19
  • 1970-01-01
  • 1970-01-01
  • 2018-11-27
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多