Navigation

Die Navigation bezieht sich auf die Interaktionen, mit denen Nutzer zwischen den verschiedenen Inhalten in Ihrer App wechseln und diese 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 Navigationsfälle, von einfachen Schaltflächenklicks bis hin zu komplexeren Mustern wie App-Leisten und Navigationsleisten.

Schlüsselkonzepte

In der folgenden Tabelle finden Sie einen Überblick über die wichtigsten Navigationskonzepte und die wichtigsten Typen, mit denen Sie sie implementieren.

Vorgabe

Zweck

Eingeben

Host

Ein UI-Element, das das aktuelle Navigationsziel enthält. Wenn ein Nutzer also durch eine App navigiert, wechselt die App im Wesentlichen Ziele in den Navigationshost und wieder heraus.

Grafik

Eine Datenstruktur, die alle Navigationsziele innerhalb der App und ihre Verknüpfung definiert.

NavGraph

Kontrolle

Der zentrale Koordinator für die Navigation zwischen Zielen. Der Controller bietet unter anderem Methoden zum Wechseln zwischen Zielen, zum Umgang mit Deeplinks und zum Verwalten des Backstacks.

NavController

Ziel

Ein Knoten im Navigationsgraphen. Wenn der Nutzer diesen Knoten aufruft, zeigt der Host den Inhalt an.

NavDestination

Wird in der Regel beim Erstellen des Navigationsgraphen erstellt.

Route

Identifiziert ein Ziel und alle dafür erforderlichen Daten eindeutig.

Sie können sich anhand von Routen orientieren. Routen führen Sie zu Zielen.

Jeder serialisierbare Datentyp.

Vorteile und Funktionen

Die Navigationskomponente bietet eine Reihe weiterer Vorteile und Funktionen, darunter:

  • Animationen und Übergänge:Hier finden Sie standardisierte Ressourcen für Animationen und Übergänge.
  • Deeplinks:Implementiert und verarbeitet Deeplinks, über die Nutzer direkt zu einem Ziel weitergeleitet werden.
  • UI-Muster:Unterstützt Muster wie Navigationsleisten und Bottom-Navigation mit minimalem zusätzlichen Aufwand.
  • Typsicherheit:Unterstützung für die Weitergabe von Daten zwischen Zielen mit Typsicherheit.
  • ViewModel-Unterstützung:Damit kann eine ViewModel auf einen Navigationsgraphen angewendet werden, um UI-bezogene Daten zwischen den Zielen des Graphen zu teilen.
  • Fragment-Transaktionen:Fragment-Transaktionen werden vollständig unterstützt und verarbeitet.
  • Zurück und hoch:Die Aktionen „Zurück“ und „Hoch“ werden standardmäßig korrekt verarbeitet.

Umgebung einrichten

Wenn Sie die Navigationsunterstützung in Ihr Projekt einbinden möchten, fügen Sie der Datei build.gradle Ihrer App die folgenden Abhängigkeiten hinzu:

plugins {
  // Kotlin serialization plugin for type safe routes and navigation arguments
  id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.21'
}
  
dependencies {
  def nav_version = "2.8.9"

  // 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"

  // JSON serialization library, works with the Kotlin serialization plugin.
  implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3"
}
plugins {
  // Kotlin serialization plugin for type safe routes and navigation arguments
  kotlin("plugin.serialization") version "2.0.21"
}

dependencies {
  val nav_version = "2.8.9"

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

  // JSON serialization library, works with the Kotlin serialization plugin
  implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
}

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

Nächste Schritte

Weitere Dokumentation und Ressourcen zur Navigationskomponente finden Sie in den folgenden Ressourcen.

Detaillierte Anleitungen

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

Codelabs

Videos

Produktproben

Netmarble, ein führender Entwickler von Mobile-Games, hat Game of Thrones: Kingsroad (demnächst für Android) entwickelt, ein Action-Adventure-Rollenspiel, das auf der Emmy®- und Golden Globe®-prämierten Serie „Game of Thrones“ basiert. Beim Ausführen

Mir 2: Return of the King ist ein hochwertiges Legend IP-Mobilspiel, das von Actoz Soft autorisiert und von HK ZHILI YAOAN LIMITED mit der Unity-Game-Engine entwickelt wurde. Dieses Spiel fängt nicht nur das Gefühl von Mir 2 ein, einem

Wuthering Waves ist ein High-Fidelity-Action-RPG von Kuro Games. Die Optimierung des Energieverbrauchs ist sehr wichtig, um bei langen Gaming-Sessions nachhaltig eine erstklassige Nutzererfahrung zu bieten. In Android Studio wurde der Power Profiler