Per navigazione si intendono le interazioni che consentono agli utenti di spostarsi, entrare e uscire dai diversi contenuti all'interno dell'app.
Il componente Navigazione di Android Jetpack include la libreria di navigazione, il plug-in Safe Args Gradle e strumenti che consentono di implementare la navigazione nell'app. Il componente Navigazione gestisce diversi casi d'uso della navigazione, dai clic semplici sui pulsanti a pattern più complessi, come le barre delle app e il riquadro di navigazione a scomparsa.
Concetti principali
La seguente tabella fornisce una panoramica dei concetti chiave della navigazione e dei tipi principali che puoi utilizzare per implementarli.
Concetto |
Finalità |
Tipo |
---|---|---|
Moderatore |
Un elemento UI contenente la destinazione di navigazione corrente. In altre parole, quando un utente naviga in un'app, quest'ultima scambia le destinazioni all'interno e all'esterno dell'host di navigazione. |
|
Grafico |
Una struttura di dati che definisce tutte le destinazioni di navigazione all'interno dell'app e il modo in cui si connettono tra loro. |
|
Controller |
Il coordinatore centrale per la gestione della navigazione tra le destinazioni. Il controller offre metodi per navigare tra le destinazioni, gestire i link diretti, gestire lo stack posteriore e altro ancora. |
|
Destinazione |
Un nodo nel grafico di navigazione. Quando l'utente accede a questo nodo, l'host ne visualizza i contenuti. |
Generalmente viene creato durante la creazione del grafico di navigazione. |
Itinerario |
Identifica in modo univoco una destinazione e tutti i dati richiesti da questa. Puoi navigare utilizzando le route. I percorsi ti portano alle destinazioni. |
Qualsiasi tipo di dati serializzabile. |
Vantaggi e funzionalità
Il componente Navigazione offre una serie di altri vantaggi e funzionalità, tra cui:
- Animazioni e transizioni: fornisce risorse standardizzate per animazioni e transizioni.
- Link diretti: implementa e gestisce i link diretti che indirizzano l'utente direttamente a una destinazione.
- Pattern UI: supporta pattern come i riquadri di navigazione a scomparsa e la navigazione in basso con il minimo sforzo.
- Sicurezza dei tipi:include il supporto per il trasferimento di dati tra destinazioni con la funzionalità Sicurezza dei tipi.
- Supporto ViewModel: consente di definire l'ambito di un
ViewModel
in un grafico di navigazione per condividere dati relativi all'interfaccia utente tra le destinazioni del grafico. - Transazioni frammenti:supporta e gestisce completamente le transazioni con frammenti.
- Backup e backup:gestisce correttamente le azioni di backup e backup per impostazione predefinita.
configura l'ambiente
Per includere il supporto alla navigazione nel progetto, aggiungi le seguenti dipendenze al file build.gradle
dell'app:
Groovy
dependencies { def nav_version = "2.8.0" // Jetpack Compose Integration implementation "androidx.navigation:navigation-compose:$nav_version" // Views/Fragments Integration implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Feature module support for Fragments implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version" // Testing Navigation androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" }
Kotlin
dependencies { val nav_version = "2.8.0" // Jetpack Compose integration implementation("androidx.navigation:navigation-compose:$nav_version") // Views/Fragments integration implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // Feature module support for Fragments implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") }
Per informazioni sull'aggiunta di altri componenti dell'architettura al progetto, consulta Aggiungere componenti al progetto.
Passaggi successivi
Per ulteriore documentazione e risorse relative al componente di navigazione, consulta le seguenti risorse.
Guide dettagliate
Per ulteriori informazioni su come implementare un host di navigazione e NavController
, nonché per i dettagli su come interagiscono con Compose e altri framework della UI, consulta le seguenti guide:
- Crea un controller di navigazione: spiega come creare un
NavController
. - Crea il tuo grafico di navigazione: mostra i dettagli di come creare un host di navigazione e un grafico di navigazione.
- Raggiungere una destinazione: mostra come utilizzare
NavController
per spostarsi tra le destinazioni nel grafico.
Codelab
- Impara a utilizzare Jetpack Navigation
- Frammenti e componente di navigazione
- Creare un'app adattiva con navigazione dinamica
Video
- Navigazione nel navigatore
- 10 best practice per passare a una singola attività
- Attività singola: perché, quando e come (Android Dev Summit '18)
- Android Jetpack: Gestire la navigazione nell'interfaccia utente con il controller di navigazione (Google I/O '18)