Flutter 删除颤振中的特定对话框

Flutter 删除颤振中的特定对话框,flutter,dialog,Flutter,Dialog,在一个应用程序中,我们有各种对话框。例如,在一种情况下: 用户单击一个按钮并获得一个“加载对话框”。 客户端以“通知对话框”的形式获取新闻通知。 用户获取加载的数据并转发到显示数据的页面 因此,“历史”/“等级”应该是 [“加载对话框”、“通知对话框”、“数据页”] 加载数据时,我们希望删除“加载对话框”,该对话框位于另一个对话框下方和数据页下方的历史记录中 如何让颤振中的特定对话框关闭 当前显示数据的页面有一个命名路径,对话框通过showDialog(…)打开。您应该能够使用Navigator

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

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

因此,“历史”/“等级”应该是 [“加载对话框”、“通知对话框”、“数据页”]

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

如何让颤振中的特定对话框关闭


当前显示数据的页面有一个命名路径,对话框通过showDialog(…)

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


这也适用于推送到导航器堆栈上的任何内容,例如通过
showModalBottomSheet(…)

的模式底部工作表问题在于,我们希望保留更高级别的对话框(通知对话框)和新推送的页面。。。在新页面和加载对话框之间还可能有一堆其他对话框……好吧,也许你应该试试Navigator 2.0(一种在颤振中处理导航的经典方式的新选择)。关于它的一个很好的教程可以在这里找到:。它允许页面的
列表
,然后您可以以任何方式更新这些页面。不要使用showDialog,在堆栈小部件中显示对话框,在满足条件时将其隐藏!!