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 Ihren Back Stack und können zwischen Zielen navigieren, indem Sie Elemente zu einer Liste hinzufügen oder daraus entfernen. Sie bietet ein flexibles App-Navigationssystem mit folgenden Funktionen:

  • Konventionen für die Modellierung eines Back Stacks, wobei jeder Eintrag im Back Stack Inhalte darstellt, zu denen der Nutzer navigiert ist
  • Eine Benutzeroberfläche, die automatisch mit Änderungen am Back Stack aktualisiert wird (einschließlich Animationen)
  • Ein Bereich für Elemente im Back Stack, mit dem der Status beibehalten werden kann, während sich ein Element im Back Stack befindet
  • Ein adaptives Layoutsystem, mit dem mehrere Ziele gleichzeitig angezeigt werden können, sodass ein nahtloser Wechsel zwischen diesen Layouts möglich ist
  • 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. Definiere die Inhalte, zu denen Nutzer in deiner App navigieren können, jeweils mit einem eindeutigen Schlüssel, und füge eine Funktion hinzu, um diesen Schlüssel in den Inhalt aufzulösen. Weitere Informationen finden Sie unter Schlüssel in Inhalte auflösen.
  2. Erstelle einen Back Stack, auf den Schlüssel übertragen und entfernt werden, wenn Nutzer in deiner App navigieren. Weitere Informationen findest du unter Back Stack erstellen.
  3. Verwenden Sie einen NavDisplay, um den Back Stack Ihrer App anzuzeigen. Wenn sich der Back Stack ändert, wird die Benutzeroberfläche aktualisiert, um relevante Inhalte anzuzeigen. Siehe Back Stack anzeigen.
  4. Ändern Sie die Szenenstrategien von NavDisplay nach Bedarf, um adaptive Layouts und verschiedene Plattformen zu unterstützen.
  5. Deeplinks unterstützen, um direkt zu Zielen zu gelangen.

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 die folgenden Verbesserungen:

  • Einfachere Integration in Compose
  • Bietet Ihnen die volle Kontrolle über den Back Stack
  • Ermöglicht das Erstellen von Layouts, die mehr als ein Ziel gleichzeitig aus dem Back Stack 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 im Blogpost zur Ankündigung.

Codebeispiele

Das Repository mit Rezepten enthält Beispiele für die Verwendung der Navigation 3-Bausteine, um gängige Navigationsprobleme zu lösen.