首页 > 解决方案 > 如何从没有导航的祖先那里获得导航

问题描述

我有几个这样的屏幕之旅:

FirstScreen() -> SecondScreen() -> ThirdScreen() -> ResultScreen()

第一个屏幕FirstScreen()使用底部导航来浏览应用程序和其他与此处无关的不同屏幕。

在上面我的主要旅程的示例中,我使用类似于这样的每个屏幕推送:

Navigator.of(context, rootNavigator: true).push(ScaleRoute(page: SecondScreen()));

Then from Second to Third screen too

Navigator.of(context, rootNavigator: true).push(ScaleRoute(page: ThirdScreen()));

//ScaleRoute is just a custom animation, not important

注意我使用rootNavigator: true是因为我不想在第二和第三屏幕中导航。

但是,ThirdScreen 中的成功事件将运行此:

Navigator.of(context, rootNavigator: false).pushAndRemoveUntil(
  SlideBottomRoute(
    page: ResultScreen()
  ),
  (route) => route.isFirst,
)

我想弹出所有屏幕直到第一个屏幕并按下ResultScreen. 我想使用原来的底部导航,ResultScreen但我无法访问,因为祖先没有那个导航。

我该如何解决这个问题?

标签: flutter

解决方案


推荐阅读