Navigation

Navigation bezieht sich auf die Interaktionen, über die Nutzer zwischen den verschiedenen Inhalten in Ihrer App hin- und herspringen und diese wieder verlassen können.

Die Navigationskomponente von Android Jetpack umfasst die Navigationsbibliothek, das Safe Args Gradle-Plug-in und Tools zur Implementierung der App-Navigation. Die Navigationskomponente unterstützt verschiedene Anwendungsfälle der Navigation, von einfachen Klicks auf Schaltflächen bis hin zu komplexeren Mustern wie App-Leisten und der Navigationsleiste.

Schlüsselkonzepte

Die folgende Tabelle bietet einen Überblick über die drei wichtigsten Konzepte der Navigation und die Haupttypen, die Sie zu deren Implementierung verwenden.

Vorgabe

Zweck

Typ

Host

Ein UI-Element, das das aktuelle Navigationsziel enthält. Das heißt, wenn Nutzende durch eine App navigieren, tauscht die App im Grunde die Ziele in und aus dem Navigationshost aus.

Grafik

Eine Datenstruktur, die alle Navigationsziele innerhalb der App und deren Verbindung definiert.

NavGraph

Controller

Der zentrale Koordinator für die Verwaltung der Navigation zwischen Zielen. Der Controller bietet Methoden für die Navigation zwischen Zielen, die Verarbeitung von Deeplinks, die Verwaltung des Back-Stacks und vieles mehr.

NavController

Vorteile und Funktionen

Die Komponente „Navigation“ bietet eine Reihe weiterer Vorteile und Funktionen, darunter:

  • Animationen und Übergänge:Stellt standardisierte Ressourcen für Animationen und Übergänge zur Verfügung.
  • Deeplinks:Implementiert und verarbeitet Deeplinks, über die Nutzer direkt zu einem Ziel gelangen.
  • UI-Muster:Unterstützt Muster wie Navigationsleisten und die Navigation am unteren Rand mit minimalem Zusatzaufwand.
  • Typsicherheit:Enthält das Safe Args Gradle-Plug-in, das Typsicherheit beim Navigieren und Übertragen von Daten zwischen Zielen bietet.
  • Unterstützung von ViewModel:Ermöglicht die Zuordnung einer ViewModel zu einem Navigationsdiagramm, um UI-bezogene Daten zwischen den Zielen der Grafik zu teilen.
  • Fragmenttransaktionen: Unterstützt Fragmenttransaktionen und verarbeitet sie.
  • Sichern und Sichern:Die Back-up- und Back-up-Aktionen werden standardmäßig korrekt verarbeitet.

Umgebung einrichten

Damit die Navigation in Ihrem Projekt unterstützt wird, fügen Sie der Datei build.gradle Ihrer Anwendung die folgenden Abhängigkeiten hinzu:

Groovig

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")
}

Informationen zum Hinzufügen weiterer Architekturkomponenten zu Ihrem Projekt finden Sie unter Komponenten zum Projekt hinzufügen.

Nächste Schritte

Weitere Dokumentation und Ressourcen im Zusammenhang mit der Navigationskomponente finden Sie in den folgenden Ressourcen.

Detaillierte Leitfäden

Weitere Informationen zum Implementieren eines Navigationshosts und von NavController sowie zur Interaktion mit Compose und anderen UI-Frameworks finden Sie in den folgenden Anleitungen:

Codelabs

Videos

Produktproben