Ответ
Navigation основана на концепции графа навигации, где экраны (destinations) связаны между собой действиями (actions).
Ключевые компоненты:
- NavGraph - XML/DSL описание структуры приложения
- NavController - управляет навигацией между точками
- NavHost - контейнер для отображения destinations
Пример с Compose:
NavHost(navController, startDestination = "home") {
composable("home") { HomeScreen(onNavigate = { navController.navigate("details") }) }
composable("details") { DetailsScreen() }
}
Преимущества:
- Централизованное управление навигацией
- Поддержка глубоких ссылок
- Анимации переходов
- Безопасность типов через Safe Args
- Интеграция с ViewModel и DI