I use one graph in which the Login screen is set as the start screen. From the Login screen, you can navigate to a specific tab bottom navigation. If you clear the stack with popUpTo(0) when going from the login screen to the screen from the bottom navigation, then the bottom navigation stops saving state when switching between tabs.
navigate between tabs:
navController.navigate(item.route) { navController.graph.startDestinationRoute?.let { route -> popUpTo(route) { saveState = true } } launchSingleTop = true restoreState = true } navigate from login to bottom tab
navController.navigate(route = NavigationItem.Home.route, builder = { popUpTo(0) })