Navigation 3 ist eine neue Navigationsbibliothek, die für die Verwendung mit Compose entwickelt wurde. Mit Navigation 3 haben Sie die vollständige Kontrolle über den Backstack. Das Navigieren zu und von 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, wobei jeder Eintrag im Backstack Inhalte darstellt, zu denen der Nutzer navigiert hat
- Eine Benutzeroberfläche, die sich automatisch mit Änderungen am Backstack 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 werden können und das einen nahtlosen Wechsel zwischen den Layouts ermöglicht
- Ein Mechanismus, mit dem Inhalte mit ihrem übergeordneten Layout (Metadaten) kommunizieren können
Auf übergeordneter Ebene implementieren Sie Navigation 3 so:
- 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.
- Erstellen Sie einen Backstack, auf den Schlüssel gelegt und aus dem sie entfernt werden, wenn Nutzer in Ihrer App navigieren. Weitere Informationen finden Sie unter Backstack erstellen.
- Verwenden Sie ein
NavDisplay, um den Backstack Ihrer App anzuzeigen. Wenn sich der Backstack ändert, wird die Benutzeroberfläche aktualisiert, um relevante Inhalte anzuzeigen. Backstack anzeigen - Passen Sie die Szenenstrategien von
NavDisplaynach Bedarf an, um adaptive Layouts und verschiedene Plattformen zu unterstützen.
Den vollständigen Quellcode für Navigation 3 finden Sie auf AOSP.
Verbesserungen gegenüber Jetpack Navigation
Navigation 3 bietet folgende Verbesserungen gegenüber der ursprünglichen Jetpack Navigation API:
- Einfachere Integration mit Compose
- Sie haben die vollständige Kontrolle über den Backstack.
- Dadurch können Layouts erstellt werden, die gleichzeitig mehr als ein Ziel aus dem Backstack lesen können. So können sie sich an Änderungen der Fenstergröße und andere Eingaben anpassen.
Weitere Informationen zu den Prinzipien und API-Designoptionen 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.