Flutter 颤振:我需要有关Navigator的特定实现的帮助

Flutter 颤振:我需要有关Navigator的特定实现的帮助,flutter,Flutter,我遇到了一个特殊的情况,我需要以最有效的方式解决。让我用图像解释一下: 因此,我有我的入口点屏幕,一个无状态小部件,有一个底部导航栏和3个项目(1,2,3) 项目2是默认项目 我需要按下项目3,然后将屏幕一直推到屏幕“C” 在这一点上,我需要返回到入口点屏幕(如果可能的话,不会一直弹出) 然后激活项目1(当前为3) 并有趣地从项目1推送一个新屏幕(E) 我目前正在做这件事 Navigator.of(context).popUntil(ModalRoute.withName(Routes.h

我遇到了一个特殊的情况,我需要以最有效的方式解决。让我用图像解释一下:

  • 因此,我有我的入口点屏幕,一个无状态小部件,有一个底部导航栏和3个项目(1,2,3)
  • 项目2是默认项目
  • 我需要按下项目3,然后将屏幕一直推到屏幕“C”
  • 在这一点上,我需要返回到入口点屏幕(如果可能的话,不会一直弹出)
  • 然后激活项目1(当前为3)
  • 并有趣地从项目1推送一个新屏幕(E)
我目前正在做这件事

Navigator.of(context).popUntil(ModalRoute.withName(Routes.home));
其中Routes.home是我的入口点,对于一些流,我管理项目1的选择并按下屏幕E。 现在,这是可行的,但我不认为这是最好的方法。 我也不想每次我推一个新的屏幕,例如,从a到B到C,我需要这些屏幕在堆栈上,直到我到达最后一个


有人能帮我吗?谢谢

Navigator
没有预先在堆栈上存储屏幕的概念。如果您真的坚持用户返回到他们从未出现过的屏幕的行为,一种方法是模拟AppBar上的后退按钮来执行
Navigator.pushReplacement
,基本上是提供您自己的后退按钮作为
引导
小部件。

如果Navigator没有存储屏幕的概念,那么我怎么做呢?不知道“提前”是什么意思。。。不管怎么说,“回到他们从未出现过的屏幕”不是真的,就像我说的,我想做的是从屏幕C回到入口点屏幕,就像你假设的那样,用户一开始就在那里。然后,但只有那时,我想从入口点推一个新屏幕(E)。另一个问题是:为什么我在这个问题上被否决了?