Как правильно обрабатывать навигацию и логику обратного стека в навигации Jetpack Compose?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно обрабатывать навигацию и логику обратного стека в навигации Jetpack Compose?

Сообщение Anonymous »

Мне нужна реализация, которая соответствует этому шаблону навигации. Например, есть экраны a, b, c и d. Последовательность навигации: a > b > d > c > b > d. Когда мы находимся на экране d и нажимаем кнопку «Назад», навигация должна выглядеть следующим образом: d > b > c > a > выход.
Я пытался реализовать это так, но это работает некорректно.
@Composable
fun BottomNavBar(navController: NavController, currentDestination: NavDestination?) {
NavigationBar(modifier = Modifier.height(120.dp)) {
topLevelRoutes.forEach { topLevelRoute ->
NavigationBarItem(
selected = currentDestination?.hierarchy?.any { it.hasRoute(topLevelRoute.route::class) } == true,
onClick = {
if (!navController.popBackStack(topLevelRoute.route, false)) {
navController.navigate(topLevelRoute.route) {
// Avoid multiple copies of the same destination when
// reselecting the same item
launchSingleTop = true
// Restore state when reselecting a previously selected item
restoreState = true
}
}
},
icon = { Icon(topLevelRoute.icon, contentDescription = null) },
label = { Text(topLevelRoute.name) })
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... ose-naviga
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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