Navigation 3

Navigation 3 ist eine neue Navigationsbibliothek, die für die Verwendung mit Compose entwickelt wurde. Mit Navigation 3 haben Sie die volle Kontrolle über den Backstack. Das Wechseln zwischen Zielen ist so einfach wie das Hinzufügen und Entfernen von Elementen aus einer Liste. Es bietet ein flexibles App-Navigationssystem mit folgenden Funktionen:

  • Konventionen für die Modellierung eines Backstacks, bei dem jeder Eintrag im Backstack Inhalte darstellt, zu denen der Nutzer navigiert ist
  • Eine Benutzeroberfläche, die sich bei Änderungen des Backstacks automatisch aktualisiert (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 und nahtlos zwischen diesen Layouts gewechselt werden kann
  • Ein Mechanismus, mit dem Inhalte mit dem übergeordneten Layout kommunizieren können (Metadaten)

Die Navigationsebene 3 lässt sich auf folgende Weise implementieren:

  1. Definieren Sie die Inhalte, zu denen Nutzer in Ihrer App wechseln können, und geben Sie für jeden Inhalt einen eindeutigen Schlüssel an. Fügen Sie dann eine Funktion hinzu, um diesen Schlüssel auf die Inhalte anzuwenden. Weitere Informationen finden Sie unter Schlüssel zu Inhalten verknüpfen.
  2. Erstellen Sie einen Backstack, in den Schlüssel eingefügt und entfernt werden, während Nutzer durch Ihre App navigieren. Weitere Informationen finden Sie unter Backstack erstellen.
  3. Verwenden Sie ein NavDisplay, um den Rückstapel Ihrer App aufzurufen. Jedes Mal, wenn sich der Backstack ändert, wird die Benutzeroberfläche aktualisiert, um relevante Inhalte anzuzeigen. Weitere Informationen finden Sie unter Back-Stack anzeigen.
  4. Ändern Sie die Szenenstrategien von NavDisplay nach Bedarf, um adaptive Layouts und verschiedene Plattformen zu unterstützen.

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

Verbesserungen bei Jetpack Navigation

Navigation 3 ist in folgenden Punkten eine Verbesserung gegenüber der ursprünglichen Jetpack Navigation API:

  • Vereinfachte Integration mit Compose
  • Bietet Ihnen die vollständige Kontrolle über den Backstack
  • Ermöglicht das Erstellen von Layouts, die gleichzeitig mehrere Ziele aus dem Backstack lesen können, sodass sie sich an Änderungen der Fenstergröße und anderer Eingaben anpassen können.

Weitere Informationen zu den Prinzipien von Navigation 3 und den Optionen für das API-Design finden Sie in diesem Blogpost.

Codebeispiele

Das Rezepte-Repository enthält Beispiele dafür, wie Sie die Navigation 3-Bausteine verwenden können, um gängige Navigationsprobleme zu lösen.