14

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

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

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

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

在此处输入图像描述

4

2 回答 2

7

首先你可以检查条件导航

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

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

但是你的起始片段应该是MainFragment而不是LoginFragment

于 2019-09-20T10:01:14.113 回答
0

您可以使用

navController.setGraph(R.navigation.xxxx)

里面一些navController

集合图

于 2019-09-20T07:29:42.917 回答