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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With