Il componente Navigazione in Android Jetpack fornisce supporto per le applicazioni Jetpack Compose. Puoi navigare tra i componibili sfruttando al contempo l'infrastruttura e le funzionalità del componente Navigazione.
In questa pagina vengono descritte le differenze con Jetpack Navigation su Compose per Wear OS.
Configurazione
Utilizza la dipendenza seguente nel file build.gradle del modulo dell'app:
Kotlin
dependencies { def wear_compose_version = "1.3.1" implementation "androidx.wear.compose:compose-navigation:$wear_compose_version" }
Viene utilizzato al posto dell'elemento androidx.navigation:navigation-compose
perché fornisce implementazioni alternative specifiche per Wear OS.
Crea un controller di navigazione, un host e un grafico
La navigazione con Scrivi per Wear OS richiede gli stessi tre componenti necessari sulle app non Wear OS: controller di navigazione, host e grafico.
Utilizza rememberSwipeDismissableNavController()
per creare un'istanza di WearNavigator
, un'implementazione NavController
adatta alle applicazioni Wear OS:
Kotlin
val navController = rememberSwipeDismissableNavController()
NavController
è
l'API principale utilizzata per navigare nelle applicazioni Compose. Consente di controllare la navigazione tra gli elementi componibili nell'host di navigazione, che su Wear OS è SwipeDismissableNavHost
.
Kotlin
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "message_list" ) { // TODO: build navigation graph }
Come il componibile NavHost
, prende un riferimento al controller di navigazione, al percorso per la destinazione di partenza e al builder per il grafico di navigazione, mostrato qui come lambda finale.
La destinazione di partenza deve essere fornita nel generatore di grafici di navigazione, insieme a tutte le altre destinazioni che devono essere navigabili con il controller di navigazione.
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")!!) } }
Per scoprire di più su Jetpack Navigation, consulta Navigazione con Compose o segui il Codelab relativo alla navigazione Jetpack Compose.