Komponent Nawigacja w Androidzie Jetpack obsługuje aplikacje Jetpack Compose. Można się między nimi poruszać, korzystając z infrastruktury i funkcji komponentu Nawigacja.
Na tej stronie opisujemy różnice związane z nawigacją w aplikacji Jetpack w funkcji tworzenia wiadomości na Wear OS.
Skonfiguruj
Użyj tej zależności w pliku build.gradle modułu aplikacji:
Kotlin
dependencies { def wear_compose_version = "1.3.1" implementation "androidx.wear.compose:compose-navigation:$wear_compose_version" }
Jest on używany zamiast artefaktu androidx.navigation:navigation-compose
, ponieważ zapewnia alternatywne implementacje charakterystyczne dla Wear OS.
Tworzenie kontrolera nawigacji, hosta i wykresu
Nawigacja za pomocą funkcji tworzenia wiadomości na Wear OS wymaga tych samych 3 komponentów, które są potrzebne w aplikacjach innych niż Wear OS: kontrolera nawigacji, hosta i wykresu.
Użyj rememberSwipeDismissableNavController()
, aby utworzyć instancję WearNavigator
, czyli implementację NavController
odpowiedniej dla aplikacji na Wear OS:
Kotlin
val navController = rememberSwipeDismissableNavController()
NavController
to podstawowy interfejs API używany do poruszania się po aplikacjach do tworzenia wiadomości. Steruje poruszaniem się między elementami kompozycyjnymi na hoście nawigacji, który w systemie Wear OS ma wartość SwipeDismissableNavHost
.
Kotlin
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "message_list" ) { // TODO: build navigation graph }
Podobnie jak kompozycyjny NavHost
, ta funkcja odwołuje się do kontrolera nawigacji, trasy dla początkowego miejsca docelowego i konstruktora wykresu nawigacji, który jest pokazany tutaj jako lambda.
Miejsce docelowe rozpoczęcia podróży musi być określone w narzędziu do tworzenia wykresów nawigacyjnych wraz ze wszystkimi innymi miejscami docelowymi, które powinny być dostępne do nawigacji za pomocą kontrolera nawigacji.
Kotlin
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "message_list" ) { composable("message_list") { MessageList(onMessageClick = { id -> navController.navigate("message_detail/$id") }) } composable("message_detail/{id}") { MessageDetail(id = it.arguments?.getString("id")!!) } }
Więcej informacji o Nawigacji w Jetpack znajdziesz w artykule na temat nawigowania przy użyciu funkcji tworzenia wiadomości oraz w ćwiczeniach z kodowania w aplikacji Jetpack Compose Navigation.