【发布时间】:2019-01-04 11:28:49
【问题描述】:
我制作了一个应用程序,其中包含相当多的路由,一个接一个地推送多个全屏对话框。但是从一个对话框中我想关闭所有并返回主页。我该怎么做?
我不想再次推送主页,因为我的导航历史记录中还有所有这些对话框。 pushReplacement 是正确的方式吗?这似乎不是因为它只删除了导航历史记录中的最后一个条目,所以如果我按回,我会进入倒数第二个对话框...
【问题讨论】:
我制作了一个应用程序,其中包含相当多的路由,一个接一个地推送多个全屏对话框。但是从一个对话框中我想关闭所有并返回主页。我该怎么做?
我不想再次推送主页,因为我的导航历史记录中还有所有这些对话框。 pushReplacement 是正确的方式吗?这似乎不是因为它只删除了导航历史记录中的最后一个条目,所以如果我按回,我会进入倒数第二个对话框...
【问题讨论】:
使用popUntil 回到您想要的位置。如果是主页,这应该可以:
Navigator.popUntil(context, ModalRoute.withName('/'));
【讨论】:
如果你不使用命名路由:
Navigator.of(context).popUntil((route) => route.isFirst);
【讨论】:
对于主页,它将适用于任何其他页面。
Navigator.of(context).pushNamedAndRemoveUntil('/', (Route<dynamic> route) => false);
【讨论】: