Flutter:我需要在导航器的特定实现上获得帮助

时间:2019-02-13 15:34:19

标签: flutter

我处于某种特殊情况下,需要以尽可能最佳的方式解决。让我用图片解释一下:

enter image description here

  • 所以,我有一个入口点屏幕,一个带有bottomNavigationBar和3个项(1,2,3)的StatelessWidget
  • 项目2是默认项目。
  • 我需要按项目3,然后将屏幕一直推到屏幕“ C”
  • 这时我需要返回到入口点屏幕(如果可能的话,请不要完全弹出)
  • 然后激活项目1(当前为3)
  • 然后有趣地从项目1推入新屏幕(E)

我目前正在通过

Navigator.of(context).popUntil(ModalRoute.withName(Routes.home));

其中Routes.home是我的入口点,并且通过一些流,我正在管理项目1的选择并按屏幕E。 现在,这是可行的,但我认为这不是最好的方法。 每次我将一个新的按钮从A推到B到C时,我都不想替换屏幕,我需要将这些屏幕一直堆放在堆栈中,直到到达最后一个为止。

有人可以帮我吗?谢谢!

1 个答案:

答案 0 :(得分:1)

Navigator没有将屏幕预先存储在堆栈中的概念。如果您确实坚持用户将返回其从未使用过的屏幕的行为,那么一种方法是模拟AppBar上的后退按钮以执行Navigator.pushReplacement,实际上是将您自己的后退按钮设置为{ {1}}小部件。