Android导航组件+登录流程+嵌套BottomNavigationView

D.R*_*ers 14 android android-navigation android-bottom-nav-view android-jetpack-navigation

我正在努力使用 Android 导航组件构建导航,如下图所示。

我需要一个“登录流程”,检查用户是否登录,然后导航到应用程序的主要部分(也清除后台堆栈)。主要部分包含一个带有三个选项卡的 BottomNavigationView。但是如果我点击工具栏上的设置图标,我也想显示一个全屏的 SettingsFragment。

我是否需要两个带有单独导航图的 NavHostFragment?如果是,我怎样才能将它们结合起来并有一个适当的反向导航?

任何想法如何使用android导航组件实现这样的导航?

在此处输入图片说明

cor*_*her 7

首先,您可以检查条件导航

其次,你可以只用一个nav_graph. 但是你只需要一个Activity。之后,您可以像这样检查它:

navController.addOnDestinationChangedListener { _, destination, _ ->
         if(destination.id == R.id.mainFragment){
             if(userIsLoggedIn()){
              //start LoginFragment
              //hide bottom navigation
             }else{
                //show bottom navigation
             }
          } 
        }
Run Code Online (Sandbox Code Playgroud)

但是你的入门片段应该是MainFragment而不是LoginFragment