我想知道如何能够实现两个屏幕之间的路由,并且能够回到上一个屏幕,而又不将它们全部堆叠在一起。
当前,我有两条路线:/
和/planets
的默认初始路线是/
,当我导航到/planets
时,我得到了两条路线的叠层,能够返回到/
,然后退出该应用程序。但与此同时,当我多次单击两条路由时,它们彼此堆叠,从而得到无限的路由堆栈。我想获得最大堆栈大小为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而导致的,并且总是在我按下并想返回应用程序时关闭。
答案 0 :(得分:0)
扑扑中的Navigator
类提供了解决此问题的方法。
您可以使用pushReplacementNamed
和popAndPushNamed
方法。
pushReplacementNamed
使用输入动画执行。
popAndPushNamed
使用退出动画执行。
好锁:)