Navigation 3

Navigation 3 ist eine Navigationsbibliothek, die für die Verwendung mit Compose entwickelt wurde. Mit Navigation 3 haben Sie die volle Kontrolle über den Backstack. Sie navigieren zwischen Zielen, indem Sie Elemente in einer Liste hinzufügen und entfernen. Es bietet ein flexibles App-Navigationssystem mit folgenden Funktionen:

  • Konventionen für die Modellierung eines Backstacks, wobei jeder Eintrag im Backstack Inhalte darstellt, zu denen der Nutzer navigiert hat
  • Eine Benutzeroberfläche, die bei Änderungen am Backstack automatisch aktualisiert wird (einschließlich Animationen)
  • Ein Bereich für Elemente im Backstack, der es ermöglicht, den Status beizubehalten, während sich ein Element im Backstack befindet.
  • Ein adaptives Layoutsystem, mit dem mehrere Ziele gleichzeitig angezeigt werden können und das einen nahtlosen Wechsel zwischen den Layouts ermöglicht
  • Ein Mechanismus, mit dem Inhalte mit ihrem übergeordneten Layout kommunizieren können (Metadaten)
  • Kommunikation zwischen Zielen, um Ergebnisse zwischen Bildschirmen zurückzugeben

Auf übergeordneter Ebene implementieren Sie Navigation 3 so:

  1. Definieren Sie die Inhalte, zu denen Nutzer in Ihrer App navigieren können, jeweils mit einem eindeutigen Schlüssel, und fügen Sie eine Funktion hinzu, um diesen Schlüssel in den Inhalt aufzulösen. Weitere Informationen finden Sie unter Schlüssel zu Inhalten auflösen.
  2. Erstellen Sie einen Backstack, in den Schlüssel eingefügt und aus dem sie entfernt werden, wenn Nutzer in Ihrer App navigieren. Weitere Informationen finden Sie unter Backstack erstellen.
  3. Verwenden Sie ein NavDisplay, um den Backstack Ihrer App anzuzeigen. Immer wenn sich der Backstack ändert, wird die Benutzeroberfläche aktualisiert, um relevante Inhalte anzuzeigen. Weitere Informationen finden Sie unter Backstack anzeigen.
  4. Passen Sie die Szenenstrategien von NavDisplay nach Bedarf an, um adaptive Layouts und verschiedene Plattformen zu unterstützen.
  5. Deeplinks unterstützen, um direkt zu Zielen zu navigieren.

Den vollständigen Quellcode für Navigation 3 finden Sie im AOSP.

Verbesserungen gegenüber Jetpack Navigation

Navigation 3 bietet im Vergleich zur ursprünglichen Jetpack Navigation API folgende Verbesserungen:

  • Einfachere Integration mit Compose
  • Sie haben die vollständige Kontrolle über den Backstack.
  • Ermöglicht das Erstellen von Layouts, die mehr als ein Ziel aus dem Backstack gleichzeitig lesen können, sodass sie sich an Änderungen der Fenstergröße und andere Eingaben anpassen können.

Weitere Informationen zu den Prinzipien und API-Designentscheidungen von Navigation 3 finden Sie in diesem Blogpost.

Codebeispiele

Das Repository mit Rezepten enthält Beispiele für die Verwendung der drei Bausteine von Navigation 3 zur Lösung häufiger Navigationsprobleme.