Navigazione

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 tre concetti chiave della navigazione e dei tipi principali che utilizzi 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.

NavGraph

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.

NavController

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 plug-in Safe Args Gradle, che offre sicurezza del tipo durante la navigazione e il trasferimento di dati tra le destinazioni.
  • 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:

trendy

dependencies {
  def nav_version = "2.7.7"

  // Java language implementation
  implementation "androidx.navigation:navigation-fragment:$nav_version"
  implementation "androidx.navigation:navigation-ui:$nav_version"

  // Kotlin
  implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
  implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

  // Feature module Support
  implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"

  // Testing Navigation
  androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"

  // Jetpack Compose Integration
  implementation "androidx.navigation:navigation-compose:$nav_version"
}

Kotlin

dependencies {
  val nav_version = "2.7.7"

  // Java language implementation
  implementation("androidx.navigation:navigation-fragment:$nav_version")
  implementation("androidx.navigation:navigation-ui:$nav_version")

  // Kotlin
  implementation("androidx.navigation:navigation-fragment-ktx:$nav_version")
  implementation("androidx.navigation:navigation-ui-ktx:$nav_version")

  // Feature module Support
  implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version")

  // Testing Navigation
  androidTestImplementation("androidx.navigation:navigation-testing:$nav_version")

  // Jetpack Compose Integration
  implementation("androidx.navigation:navigation-compose:$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:

Codelab

Video

Campioni