我制作了一个具有很多路由的应用程序,一个接一个地推送多个全屏对话框。但是我想从一个对话框中关闭所有对话框并返回到主页。我该怎么办?
我不想再次推送主页,因为那样,我的导航历史记录中仍然包含所有这些对话框。 pushReplacement
是否正确?似乎不是因为它只删除了导航历史记录中的最后一个条目,所以如果我按回去,则会进入倒数第二个对话框...
答案 0 :(得分:1)
使用popUntil
返回所需的位置。如果它是主页,则应该可以:
Navigator.popUntil(context, ModalRoute.withName('/'));
答案 1 :(得分:0)
对于首页,它可以在任何其他页面上使用。
Navigator.of(context).pushNamedAndRemoveUntil('/', (Route<dynamic> route) => false);
答案 2 :(得分:0)
如果您不使用命名路由:
Navigator.of(context).popUntil((route) => route.isFirst);