首页 > 解决方案 > 一项活动,入职 + 多个带有底部导航的 backStacks 片段

问题描述

刚刚访问了导航库的最后一个 alpha 发布版本 2.4.0-alpha02的google存储库。我对显示 onBoarding 图然后加载多个堆栈的导航图的正确方法有很大疑问,所有这些都在一个活动中。

如果我理解正确的话FragmentContainerView,在上次更新中,它需要一个 navGraph,其中包含<include>我们希望在应用程序中包含的部分,以及其中之一的 startDestination。

导航疑问:

什么是正确的实施?我的意思是,我查看了文档和条件导航的部分,但这部分似乎不适合里面。

我尝试了什么:

  1. 我在 FragmentContainerView 中充气了 onboarding 的 navGraph,然后在完成后,我在同一个 FragmentContainer 中充气了另一个 navgraph,用于多个 backStack,这种方法似乎有视觉上的影响,因为 FragmentContainerView 获取时的视图他的 navGraph 在里面膨胀,视图变白了......
  2. 我使用activity的fragmentManager作为NavHost,先加载onBoarding图,然后用他的navGraph加载FragmentContainerView,这个选项改善了1中提到的视觉问题。但是多个backstack停止工作,我猜是FragmentContainerView,需要导航主机。

标签: android-fragmentsandroidxandroid-architecture-componentsandroid-architecture-navigationandroid-navigation

解决方案


在与设计导航组件的 Ian Lake 交谈时,他说我们永远不应该使用启动屏幕或引导屏幕作为我们的起始目的地。相反,如果需要,您应该使用条件导航将用户引导至启动屏幕或入职屏幕。然后他给我链接了以下文章

https://medium.com/androiddevelopers/navigation-conditional-navigation-e82d7e4905f0


推荐阅读