I'm struggle building a Navigation, like on the image below, with the Android Navigation Component.
I need a "Login Flow", check if the user is logged in and then navigate to the main part of the app (also clearing the backstack). The main part contains a BottomNavigationView with three tabs. But if I click on a settings icon on the toolbar, I also want to display a fullscreen SettingsFragment.
Did I need two NavHostFragments with separate navigation graphs? If yes, how can I combine them and also have a proper backNavigation?
Any ideas how realize a navigation like this with the android navigation components?
First of all you can check Conditional Navigation
Second of all, you can do it with only one nav_graph
. But you need only one Activity
for this. After that, you can check in it like this:
navController.addOnDestinationChangedListener { _, destination, _ ->
if(destination.id == R.id.mainFragment){
if(userIsLoggedIn()){
//start LoginFragment
//hide bottom navigation
}else{
//show bottom navigation
}
}
}
But your starter fragment should be MainFragment
and not LoginFragment
You can use
navController.setGraph(R.navigation.xxxx)
inside some navController
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.