В моем приложении у меня есть и нижняя панель, и панель навигации.
Экраны, связанные с нижней панелью: «Домой», «Поиск», «Библиотека», «Премиум», «Создать»),
Навигационный ящик — это новости, история, настройки.
Моя проблема в том, что если, например, я нажимаю HomeRoute, затем SearchRoute, затем нажимаю HistoryRoute, наконец, я повторно нажимаю SearchRoute, он не показывает SearchScreen, который он показывает. HistoryScreen.
Как удалить любую страницу, связанную с навигационным ящиком, при повторном нажатии любого маршрута нижней панели.
Это мой текущий NavHost
@Composable
fun MainNavGraph(navController: NavHostController) {
NavHost(
navController = navController,
startDestination = HomeRoute,
) {
homeScreen()
searchScreen()
libraryScreen()
premiumScreen()
createScreen()
navigation(startDestination = HistoryRoute) {
historyScreen()
newsScreen()
settingsScreen()
}
}
@Serializable object DrawerGraph
Вот как я переключаю экраны нижней панели
navController.navigate(item.route){
popUpTo(navController.graph.startDestinationId){
saveState = true
}
launchSingleTop = true
restoreState = true
}
Вот как я переключаю экран панели навигации
navController.navigate(item.route) {
launchSingleTop = true
restoreState = false
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ck-compose