Как удалить маршруты ящиков из BackStack в составлении реактивного ранца?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как удалить маршруты ящиков из BackStack в составлении реактивного ранца?

Сообщение Anonymous »

В моем приложении у меня есть и нижняя панель, и панель навигации.
Экраны, связанные с нижней панелью: «Домой», «Поиск», «Библиотека», «Премиум», «Создать»),
Навигационный ящик — это новости, история, настройки.
Моя проблема в том, что если, например, я нажимаю 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»