Мне нужна реализация, которая соответствует этому шаблону навигации. Например, есть экраны 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
Как правильно обрабатывать навигацию и логику обратного стека в навигации Jetpack Compose? ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение