【发布时间】:2018-06-25 19:23:17
【问题描述】:
我想知道如何实现两个屏幕之间的路由,并且能够返回到前一个屏幕,但又不将它们全部堆叠起来。
目前,我有两条路线:/ 和/planets 默认初始路线是/,当我导航到/planets 时,我得到了两条路线的堆栈,我可以回到@ 987654325@ 然后退出应用程序。但同样,当我多次单击两条路线时,它们会相互堆叠,我会得到无限的路线堆栈。我想获得 2 的最大堆栈大小并通过 pop() 的能力进行导航。可能吗 ?我怎样才能做到这一点?
void _navigateTo(BuildContext context, Screen screen) {
Navigator.pop(context);
if (Screen.HomeScreen == screen) {
Navigator.pushReplacementNamed(context, '/');
} else if (Screen.PlanetsScreen == screen) {
Navigator.pushReplacementNamed(context, '/planets');
}
}
这是由大小为 1 的堆栈导致的,并且总是在我推送并想要返回时应用程序关闭..
【问题讨论】:
-
为什么要从
/planets重定向到/而不是直接弹出路由? -
我有一个可以从一个屏幕导航到另一个屏幕的抽屉
-
基本上,你想从
/planets弹回/,然后从/推送到/planets,弹出会从栈中移除路由