【问题标题】:Flutter navigation stackingFlutter 导航堆叠
【发布时间】: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,弹出会从栈中移除路由

标签: dart flutter


【解决方案1】:

flutter 中的Navigator 类为这个问题提供了解决方案。

您可以使用pushReplacementNamedpopAndPushNamed 方法。

pushReplacementNamed 执行回车动画。

popAndPushNamed 执行退出动画。

好锁:)

【讨论】:

    猜你喜欢
    • 2020-10-22
    • 2013-10-12
    • 2020-08-04
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 2015-03-16
    相关资源
    最近更新 更多