Navigation
https://developer.android.com/guide/navigation |
https://developer.android.com/guide/navigation/navcontroller |
29.09.2024 | https://youtu.be/BFhVvAzC52w |
Type safety Navigation
https://developer.android.com/guide/navigation/design/type-safety |
Обеспечивает проверку типов на этапе компиляции при работе с навигационными графами.
• Определение маршрутов: Для маршрутов без аргументов используется object
, а для маршрутов с аргументами — сериализуемые классы или data
-классы.
@Serializable
object Home
@Serializable
data class Profile(val id: String)
• Построение графа навигации: Используя функции composable<T>
, можно определить навигационные графы с типобезопасными маршрутами.
NavHost(navController, startDestination = Home) {
composable<Home> {
HomeScreen(onNavigateToProfile = { id ->
navController.navigate(Profile(id))
})
}
composable<Profile> { backStackEntry ->
val profile: Profile = backStackEntry.toRoute()
ProfileScreen(profile.id)
}
}
• Навигация с аргументами: Для перехода к определенному маршруту с аргументами используется метод navigate()
, принимающий экземпляр маршрута.
navController.navigate(Profile(id = "123"))