// Определите route в вашем приложении
@Serializable data object Home
@Serializable data class Product(val id: String)
// Создайте back stack, указав начальный route
val backStack = remember { mutableStateListOf<Any>(ProductList) }
// NavDisplay отображает ваш back stack
// Каждый раз, когда back stack меняется, отображение обновляется.
NavDisplay(
backStack = backStack, // Простой List<Any>
// Укажите, что должно происходить при нажатии кнопки "назад"
onBack = { backStack.removeLastOrNull() },
// Провайдер записей преобразует маршрут в NavEntry,
// который содержит контент для этого маршрута.
entryProvider = { route ->
when (route) {
is Home -> NavEntry(route) {
Column {
Text("Добро пожаловать в Nav3")
Button(onClick = {
// Чтобы перейти к другому экрану,
// просто добавьте его в back stack
backStack.add(Product("123"))
}) {
Text("Нажмите для навигации")
}
}
}
is Product -> NavEntry(route) { Text("Продукт ${route.id}") }
else -> NavEntry(Unit) { Text("Неизвестный route: $route") }
}
}
)
#jetpack #compose #навигация