颤振导航堆叠

时间:2018-06-25 19:23:17

标签: dart flutter

我想知道如何能够实现两个屏幕之间的路由,并且能够回到上一个屏幕,而又不将它们全部堆叠在一起。

当前,我有两条路线://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而导致的,并且总是在我按下并想返回应用程序时关闭。

1 个答案:

答案 0 :(得分:0)

扑扑中的Navigator类提供了解决此问题的方法。

您可以使用pushReplacementNamedpopAndPushNamed方法。

pushReplacementNamed使用输入动画执行。

popAndPushNamed使用退出动画执行。

好锁:)