Ответ
В Jetpack Compose навигация реализуется через библиотеку navigation-compose. Основные шаги:
- Добавь зависимость:
implementation("androidx.navigation:navigation-compose:2.7.7")
- Создай
NavController:
val navController = rememberNavController()
- Определи граф навигации в
NavHost:
NavHost(navController = navController, startDestination = "home") {
composable("home") { HomeScreen(navController) }
composable("details/{id}") { backStackEntry ->
DetailsScreen(backStackEntry.arguments?.getString("id"))
}
}
- Переход между экранами:
navController.navigate("details/123") // с параметром
// или
navController.popBackStack() // назад
Ключевые особенности:
- Типобезопасность через
safe-args(опционально) - Поддержка deep links
- Интеграция с ViewModel
- Анимации переходов через
AnimatedNavHost