Il componente Navigazione di Android Jetpack fornisce supporto per le applicazioni Jetpack Compose. Puoi navigare tra i componenti componibili sfruttando al contempo l'infrastruttura e le funzionalità del componente di navigazione.
In questa pagina vengono descritte le differenze con la navigazione Jetpack in Compose per Wear OS.
Configura
Utilizza la seguente dipendenza nel file build.gradle del modulo dell'app:
Kotlin
dependencies { def wear_compose_version = "1.4.0" implementation "androidx.wear.compose:compose-navigation:$wear_compose_version" }
Viene utilizzato invece 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 Compose per Wear OS richiede gli stessi tre componenti necessari per le app non Wear OS: il controller di navigazione, l'host e il grafico.
Utilizza
rememberSwipeDismissableNavController()
per creare un'istanza di WearNavigator
, un'implementazione di NavController
adatta per le applicazioni Wear OS:
Kotlin
val navController = rememberSwipeDismissableNavController()
NavController
è
l'API principale utilizzata per navigare nelle applicazioni Compose. Controlla la navigazione tra i composabili 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 composable
NavHost
,
accetta un riferimento al controller di navigazione, al percorso per la destinazione
di partenza e al builder per il grafo di navigazione, che viene mostrato qui come
funzione 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 controllore di navigazione.
Nell'app per Wear OS, dichiara SwipeDismissableNavHost
come contenuto della Scaffold
per
supportare componenti di primo livello come ora, indicatore di scorrimento/posizione e indicatore
di pagina.
Utilizza un oggetto Orologiaio AppScaffold
sopra SwipeDismissableNavHost
e Orologiaio ScreenScaffold
a livello di schermata per aggiungere un oggetto TimeText
alla schermata per impostazione predefinita e assicurarti che venga animato correttamente quando navighi tra le schermate.
Inoltre, ScreenScaffold
aggiunge un PositionIndicator
per i contenuti scorrevoli.
AppScaffold { 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")!!) } } } // ... // .. Screen level content goes here val scrollState = rememberScrollState() ScreenScaffold(scrollState = scrollState) { // Screen content goes here
Per scoprire di più su Jetpack Navigation, consulta Navigazione con Compose o partecipa al lab di codice di Navigazione di Jetpack Compose.
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Eseguire la migrazione di Jetpack Navigation a Navigation Compose
- Navigazione con Scrivi
- Spostarsi tra le schermate con Scrivi