Ответ
Для навигации в Jetpack Compose используем библиотеку navigation-compose. Основные компоненты:
NavHost– контейнер для навигацииNavController– управляет маршрутамиcomposable()– объявляет экраны
Пример реализации:
@Composable
fun AppNavigation() {
val navController = rememberNavController()
NavHost(navController, startDestination = "main") {
composable("main") { MainScreen(navController) }
composable("details/{id}") { backStackEntry ->
val id = backStackEntry.arguments?.getString("id")
DetailsScreen(id)
}
}
}
// Навигация между экранами:
navController.navigate("details/123")
Ключевые моменты:
- Используйте
rememberNavController()для сохранения состояния - Передавайте параметры через маршрут (
/{param}) - Для сложных объектов используйте
NavType.SerializableType - Для глубоких ссылок –
navDeepLink - Для анимации переходов –
Modifier.navigationAnimation()