navigation3

  
Navigation 3 ist eine neue Navigationsbibliothek, die für die Verwendung mit Compose entwickelt wurde.
Letzte Aktualisierung Stabile Release Releasekandidat Beta-Release Alpha-Release
23. September 2026 1.2.0 - - 1.3.0-alpha01

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von navigation3 hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie unter Google-Repository bei Maven.

Fügen Sie die Abhängigkeiten für die benötigten Artefakte in der Datei build.gradle für Ihre App oder Ihr Modul hinzu:

Groovy

dependencies {
    implementation "androidx.navigation3:navigation3-runtime:1.3.0-alpha01"
    implementation "androidx.navigation3:navigation3-ui:1.3.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.3.0-alpha01")
    implementation("androidx.navigation3:navigation3-ui:1.3.0-alpha01")
}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.

Neues Problem melden

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.3

Version 1.3.0-alpha01

23. September 2026

androidx.navigation3:navigation3-*:1.3.0-alpha01 ist veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.

** Fehlerkorrekturen **

  • Die Übergabe der Animation für die intelligente „Zurück“-Touchgeste in NavDisplay wurde korrigiert, indem zu DeferredAnimatedContent migriert und Probleme bei der Übergabe von Übergängen behoben wurden. I145eaedd b/430807423

Für dieses Artefakt sind keine Versionshinweise verfügbar.

Version 1.2.0

23. September 2026

androidx.navigation3:navigation3-*:1.2.0 ist veröffentlicht. Version 1.2.0 enthält diese Commits.

Version 1.2.0 ist jetzt stabil

Wichtige Änderungen seit Version 1.1.0

Result API

  • Mit dieser neuen API können Ergebnisse zwischen NavEntries über die von LocalResultEventBus und ResultEventBusNavEntryDecorator bereitgestellte ResultEventBus übergeben werden.
  • rememberResultEventBus wurde hinzugefügt, um das Hoisting eines ResultEventBus außerhalb von ResultEventBusNavEntryDecorator zu unterstützen und es an rememberResultEventBusNavEntryDecorator zu übergeben.
  • Auf übergebene Ergebnisse kann als Status mit ResultEventBus#conflateAsState zugegriffen oder sie können als Ergebnisfluss mit ResultEffect erfasst werden.

Deep Link API

Navigation3 unterstützt jetzt KMP-Deeplinks (Kotlin Multiplatform) in androidx.navigation3.runtime.deeplink über DeepLinkRequest, DeepLinkUri und DeepLinkMatcher.

  • DeepLinkRequest und RequestExtras: Steht für eine Deeplink-Anfrage, die aus einem DeepLinkUri, einem URI-String oder einem Android-Intent erstellt wurde. Zusätzliche Anfragemetadaten können mit dem typsicheren RequestExtras-Container angehängt werden, der mit der requestExtras-DSL und RequestExtrasKey<T> erstellt wurde.
  • DeepLinkMatcher: Stellt einen Deeplink dar, der mit einem DeepLinkRequest abgeglichen werden kann. Jede Matcher-Instanz ist dem Navigationsschlüssel zugeordnet, der diesen Deeplink unterstützt. Ein Navigationsschlüssel kann mit mehreren Matchern verknüpft sein. Wenn Sie DeepLinkMatcher.match aufrufen, wird ein MatchResult zurückgegeben, das den zugehörigen Navigationsschlüssel enthält, wenn eine Übereinstimmung gefunden wird. Es gibt zwei Standardimplementierungen von DeepLinkMatcher: UriDeepLinkMatcher für den Abgleich von Deeplinks basierend auf Uri und StaticKeyDeepLinkMatcher für den Abgleich von Deeplinks mit nur DeepLinkMatcher.Filter, die über einen booleschen Wert übereinstimmen.
  • BackStackMatcher: Ein DeepLinkMatcher zum Erstellen eines synthetischen Backstacks bei einem erfolgreichen Deeplink-Abgleich. BackStackMatcher können mit der Erweiterungsfunktion DeepLinkMatcher.withBackStack erstellt werden.

Predictive Back Handling

  • NavigationBackHandler und rememberNavigationEventState wurden hinzugefügt, um die Verbindung von SceneState mit der Verarbeitung von intelligenten „Zurück“-Gesten (onBackCompleted und onBackCancelled) zu vereinfachen. So können benutzerdefinierte UI-Komponenten die Rückwärtsnavigation und intelligente „Zurück“-Gesten unterstützen, ohne dass Backstack-Deltas manuell berechnet werden müssen.
  • Verbesserte Übergänge für intelligente „Zurück“-Gesten, einschließlich Unterstützung für intelligente „Zurück“-Gesten, die während Vorwärtsanimationen ausgelöst werden.

Weitere Änderungen

  • NavEntry.contentKey ist jetzt standardmäßig eine Kombination aus key.toString() und key::class.toString(). So werden Schlüsselkonflikte zwischen data object-Schlüsseln verhindert, die in verschiedenen Schnittstellen denselben einfachen Namen haben.
  • Bei EntryProvider wird jetzt die Übereinstimmung basierend auf Schlüsselinstanzen und nicht auf Schlüsseltypen priorisiert.
  • Es wurde ein Lint-Check hinzugefügt, um sicherzustellen, dass Scene-Implementierungen entweder data class sind oder equals und hashCode implementieren.

Version 1.2.0-rc01

9. September 2026

androidx.navigation3:navigation3-*:1.2.0-rc01 ist veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.

Fehlerkorrekturen

  • Doppelte Platzhalternamen in Deeplink-URI-Mustern sind nicht zulässig. (I8985c, b/522343165)

Version 1.2.0-beta01

26. August 2026

androidx.navigation3:navigation3-*:1.2.0-beta01 ist veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.

API-Änderungen

  • DeepLinkRequest.extras wurde von Map<String, Any> in eine neue typsichere kartenähnliche Klasse RequestExtras umgestaltet, in der Paare von RequestExtrasKey<T> bis T gespeichert werden. RequestExtras kann mit der requestExtras-DSL instanziiert werden. (Ic929d, b/543883369)

Fehlerkorrekturen

  • Es wurde ein Problem behoben, durch das vorhersagende Zurück-Gesten, die während eines Übergangs nach vorn ausgelöst werden, nicht entsprechend dem Wischfortschritt animiert werden. Die Animation für die intelligente „Zurück“-Touchgeste wird jetzt richtig ausgeführt. (Icdcb0, b/456218398)
  • Es wurde eine Lint-Prüfung hinzugefügt, um sicherzustellen, dass Scene-Implementierungen entweder Datenklassen sind oder „equals“ und „hashcode“ implementieren, damit bei Bedarf dasselbe Scene verwendet wird. (Ibdf0d, b/542316099)
  • NavEntry.contentKey ist jetzt standardmäßig ein zusammengesetzter Wert aus key.toString() und key::class.toString(). So wird sichergestellt, dass Datenobjekte, die denselben Namen haben, aber unterschiedliche Schnittstellen implementieren, nicht mehr denselben contentKey haben. Die key::class der JS-Plattform gibt jedoch nur den einfachen Klassennamen anstelle des voll qualifizierten Namens zurück. Daher sollte die JS-Plattform weiterhin eine benutzerdefinierte contentKey für Datenobjekte mit doppelten Namen implementieren. (I1fbbb, b/512534342)
  • Der Fehler IllegalArgumentException, der von SaveableStateProvider für doppelte Schlüssel ausgegeben wurde, die bei der schnellen Rückwärtsnavigation verwendet wurden, wenn mehrere Pop-Übergänge ausgeführt wurden, wurde behoben. (I4d728, b/516312097)

Version 1.2.0-alpha07

29. Juli 2026

androidx.navigation3:navigation3-*:1.2.0-alpha07 ist veröffentlicht. Version 1.2.0-alpha07 enthält diese Commits.

API-Änderungen

  • Eine abstrakte WrappedMatchResult-Klasse wurde hinzugefügt, um eine andere DeepLinkMatcher.MatchResult zu umschließen. So können benutzerdefinierte Abgleichsergebnisse übereinander gelegt werden. (I7d4dc, b/470282247)
  • Es wurde eine neue BackStackMatcher-Klasse hinzugefügt, die zwei Parameter akzeptiert: eine Matcher-Instanz und eine Builder-Lambda-Funktion, die das Match-Ergebnis des Eingabe-Matchers bereitstellt und einen Backstack zurückgibt. Bei einer erfolgreichen Übereinstimmung gibt BackStackMatcher ein BackStackMatchResult zurück, das WrappedMatchResult erweitert und das ursprüngliche Übereinstimmungsergebnis sowie den mit dem Lambda erstellten Backstack enthält. Der BackStackMatcher kann nur mit der neuen Erweiterungsfunktion DeepLinkMatcher.withBackStack erstellt werden. (Ibf987, b/470282247)

  • Es wurde eine abstrakte DeepLinkSerializer-Klasse hinzugefügt, die KSerializer erweitert, um value : T als String zu codieren und zu decodieren. Mit DeepLinkSerializer können nicht primitive Deeplink-Argumente serialisiert werden. Kompatibel mit rememberSaveable und rememberNavBackStack. (Id3c9f, b/470282247)

  • DeepLinkMatcher hat einen zweiten Typparameter out R : DeepLinkMatcher.MatchResult<T> hinzugefügt, damit Entwickler ohne Typumwandlung auf die Eigenschaften der untergeordneten Klasse MatchResult zugreifen können, die von DeepLinkMatcher.match() zurückgegeben wird. (I693d3, b/470282247)

  • Die Obergrenze für DeepLinkMatcher.MatchResult's T wurde von Any? zu Any geändert. (I6bf1a)

  • Das Konstruktorfeld DeepLinkRequest uri hat jetzt standardmäßig den Wert „null“. Der sekundäre Konstruktor uriString wurde in uri umbenannt. (Ia0f14, b/522194187)

Fehlerkorrekturen

  • ResultEffect verwendet jetzt rememberUpdatedState, um die neueste onResult-Lambda zu erfassen. (I7d2a3, b/531709234)
  • Die Deeplink-Abstimmung für leere Pfadsegmente wurde korrigiert. Wenn der Argumenttyp „String“ ist, wird der leere Pfad als leerer Stringwert behandelt. Andernfalls wird der leere Pfad so behandelt, als wäre kein Wert angegeben worden, und es wird auf den Standardwert zurückgegriffen. Wenn kein Standardwert vorhanden ist, schlägt der Abgleich fehl. (I56575, b/535298128)
  • Unterstützung für leere Abfragewerte in DeepLinkRequest.uri hinzugefügt. Wenn das Argument vom Typ „String“ ist, wird der leere Wert als Literal für einen leeren String behandelt. Andernfalls wird der leere Wert so behandelt, als wäre kein Wert angegeben, und es wird versucht, auf den Standardwert zurückzugreifen. Wenn kein Standardwert vorhanden ist, schlägt der Abgleich fehl. (I30343, b/535127459)
  • Bei EntryProvider wird jetzt der Abgleich anhand von Schlüsselinstanzen gegenüber Schlüsseltypen priorisiert. (Ib5ec9, b/533331924)
  • SceneState berechnet jetzt vorherige Szenen korrekt, beginnend mit der obersten Szene, die kein Overlay ist. (I91915, b/513630541)

Version 1.2.0-alpha06

15. Juli 2026

androidx.navigation3:navigation3-*:1.2.0-alpha06 ist veröffentlicht. Version 1.2.0-alpha06 enthält diese Commits.

Fehlerkorrekturen

  • Die UriDeepLinkMatcher-Dokumentation zu URI-Fragmenten wurde korrigiert, um zu verdeutlichen, dass Fragmente mit Platzhaltern mit jeder Eingabe übereinstimmen, die Eingabe jedoch nicht als Argumente extrahiert wird. (I5ad9b, b/524677091)
  • Das Problem wurde behoben, dass UriDeepLinkMatcher nicht mit einer Anfrage übereinstimmte, wenn das URI-Muster kein Schema enthielt oder nicht mit einem doppelten Schrägstrich begann. Beispiel: www.example.com/home stimmt jetzt mit http://www.example.com/home überein. (Ia6b65, b/522791926)

Version 1.2.0-alpha05

01. Juli 2026

androidx.navigation3:navigation3-*:1.2.0-alpha05 ist veröffentlicht. Version 1.2.0-alpha05 enthält diese Commits.

Neue API

  • Es wurde eine rememberResultEventBus-API hinzugefügt, die ein ResultEventBus zurückgibt, das an rememberResultEventBusNavEntryDecorator übergeben werden kann. So kann ein ResultEventBus außerhalb des ResultEventBusNavEntryDecorator platziert werden. (Ia655b, b/516995400)

DeepLinkRequest

  • Es wurden zwei KMP-kompatible Konstruktoren hinzugefügt: einer mit DeepLinkUri und einer mit einem Rohstring-URI. (I3c088, b/513200887, b/522194187)
  • (Nur Android) Es wurde ein Konstruktor hinzugefügt, der ein Intent akzeptiert. (Ia0498, b/513200887, b/522194187)
  • Alle Konstruktoren haben ein zusätzliches extras-Feld für ein Map<String, Any>, um zusätzliche Anfrageinformationen anzuhängen. (If81d5, b/513200887)
  • Eine neue requestExtras-DSL wird als typsichere Methode zum Erstellen einer Karte mit Extras hinzugefügt. Die DSL bietet eine put-Funktion zum Speichern von Paaren aus RequestExtrasKey und Any. Mit der Erweiterungsfunktion Map<String, Any>.get(key) können Daten aus der Karte mit einem RequestExtrasKey(I5091c, b/513200887) gelesen werden.
  • (Nur Android) Die Funktionen ActionExtrasKey und actionExtra wurden hinzugefügt, um eine Extras-Karte mit ActionExtrasKey zu erstellen. (Id0c90, [b/513200887]
  • Es wurde eine MimeTypeExtrasKey- und mimeTypeExtra-Funktion hinzugefügt, um eine Extras-Karte mit MimeTypeExtrasKey zu erstellen. (I85131, b/513200887)

DeepLinkMatcher

  • Die Funktionen DeepLinkMatcher.mimeTypeFilter und DeepLinkMatcher.actionFilter wurden hinzugefügt, um DeepLinkMatcher.Filters zu erstellen, mit dem DeepLinkRequest nach mimeType oder action gefiltert wird (nur Android). Bei beiden Filtern wird die String-Gleichheit berücksichtigt und die Groß-/Kleinschreibung nicht beachtet. (Ie7e67, b/513191950)

API-Änderungen

DeepLinkRequest

  • Entfernen Sie die fromAction-Factory-Funktion. Wenn Sie eine Anfrage erstellen möchten, die mit einer Aktion verknüpft ist, verwenden Sie das neue Feld DeepLinkRequest.extras.(Id0c90, b/513200887)
  • Die fromMimeType-Werksfunktion wurde entfernt. Verwenden Sie das neue Feld DeepLinkRequest.extras, um eine Anfrage zu erstellen, die einem MIME-Typ zugeordnet ist. (I85131, b/513200887)
  • (Nur Android) Die fromIntent-Werksfunktion wurde entfernt. Wird durch einen neuen Konstruktor ersetzt, der ein Intent und eine Extras-Zuweisung akzeptiert. (Ia0498, b/513200887, b/522194187)
  • Die Werkseinstellungen für die Funktionen fromUri und fromUriString wurden entfernt. Wird durch neue Konstruktoren ersetzt, die entweder einen DeepLinkUri oder einen Rohstring-URI verwenden. (Id5b6f, b/522194187)
  • DeepLinkMatcher, DeepLinkMatcher.MatchResult und ihre Unterklassen verwenden jetzt ein kovariantes T (out T), sodass für hierarchische Schlüssel, die mit Matchers verwendet werden, kein Typecasting erforderlich ist. (I1e453, b/525094876)
  • Der Konstruktorparameter UriMatchResult für die Argumentzuordnung hat jetzt standardmäßig eine leere Zuordnung. (I3acdd)
  • Die abstrakte Klasse DeepLinkMatcher.Filter ist jetzt eine funktionale Schnittstelle. Das Konstruktorfeld filter wurde entfernt und sollte stattdessen direkt in der abgeleiteten Klasse übergeben werden. (I9eb7d, b/522194187)

Fehlerkorrekturen

  • Das Problem, dass ein eingeblendeter Eintrag sofort verschwand, wenn er zu einem Eintrag mit verschachtelten Metadaten mit Lambda-Werten eingeblendet wurde, wurde behoben. (Idb872, b/520494430)
  • Der Fehler UriDeepLinkMatcher wurde behoben. Er gibt jetzt einen Nullwert für UriMatchResult zurück, anstatt MissingFieldException auszulösen, wenn beim Abgleich erforderliche Argumente fehlen. (I5322f, b/524663005)
  • Ein UriDeeplinkMatcher mit einem URI mit dem Schema „https“ kann nur mit Anfragen abgeglichen werden, die ebenfalls das Schema „https“ haben. (Ibfe22, b/522304329)
  • Korrigieren Sie UriDeepLinkMatcher, damit das http-Schema beim Abgleich eines DeepLinkRequest mit einem UriDeepLinkMatcher korrekt als positive Übereinstimmung mit https erkannt wird. (I3a62b, b/518804264)
  • Der DeepLinkMatcher.MatchResult-Vergleich gibt jetzt standardmäßig 0 zurück, wenn zwei Ergebnisse gleich sind. (I48ddb, b/518841353)
  • UriDeepLinkMatcher gibt jetzt ein Null-UriMatchResult zurück, anstatt eine Ausnahme auszulösen, wenn die Abgleichsanfrage aufgrund fehlender erforderlicher Argumente fehlschlägt. (I669a7, b/470282247, b/512923412)

Version 1.2.0-alpha04

3. Juni 2026

androidx.navigation3:navigation3-*:1.2.0-alpha04 ist veröffentlicht. Version 1.2.0-alpha04 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem mit der Overlay-Animation wurde behoben, bei dem verschachtelte Overlays wie ModalBottomSheet unerwartet neu animiert wurden, wenn die Overlays darüber entfernt wurden. (Ia2b9e, b/502624496)

Version 1.2.0-alpha03

19. Mai 2026

androidx.navigation3:navigation3-*:1.2.0-alpha03 ist veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.

Neue Funktionen

Navigation 3 unterstützt jetzt Deeplinks mit DeepLinkRequest und DeepLinkMatcher:

  • DeepLinkRequest ein angeforderter Deeplink mit einem DeepLinkUri und einem optionalen „mimeType“ oder „action“ (nur Android). Zusammen mit der neuen Klasse gibt es Begleitfunktionen zum Erstellen einer Instanz mit einem uri, einem mimeType oder einem action. Die Android-Plattform bietet auch eine Hilfsfunktion zum Erstellen einer Anfrage aus einem Intent. (Iaaac9, b/470282247)

    val uriOnlyRequest = DeepLinkRequest.fromUriString("https://sampledeeplink.com/home")
    val uriAndMimeRequest = DeepLinkRequest.fromUriString(
      "https://sampledeeplink.com/user/profile?id=123",
      "image/png"
    )
    
  • DeepLinkMatcher steht für einen Deeplink, der mit einem DeepLinkRequest abgeglichen werden kann. Jede Matcher-Instanz ist dem Navigationsschlüssel zugeordnet, der diesen Deeplink unterstützt. Ein Navigationsschlüssel kann mit mehreren Matchern verknüpft sein. Wenn Sie DeepLinkMatcher.match aufrufen, wird ein MatchResult zurückgegeben, das den zugehörigen Navigationsschlüssel enthält, wenn die Übereinstimmung erfolgreich ist. Es gibt zwei Standardimplementierungen von DeepLinkMatcher: UriDeepLinkMatcher für den Abgleich von Deeplinks basierend auf dem URI und StaticKeyDeepLinkMatcher für den Abgleich von Deeplinks mit nur DeepLinkMatcher.Filter, die über einen Boolean abgeglichen werden. (I3798e, b/470282247)

  • UriDeepLinkMatcher eine meinungsstarke Implementierung von DeepLinkMatcher, die Deeplinks verarbeitet, indem DeepLinkUri mit einem serialisierbaren Navigationsschlüssel abgeglichen wird. Es werden Deeplink-Argumente von primitiven Typen oder Sammlungen von Primitiven wie Listen, Arrays und Sets unterstützt. (I1520b, b/470282247)

    @Serializable
    data class UserKey(val id: Int): NavKey
    
    // declare a deep link supported by UserKey
    val userMatcher = UriDeepLinkMatcher(
      uriPattern = "www.sampledeeplink.com/user?userId={id}",
      serializer = serializer<UserKey>()
    )
    
    // handle a requested deep link with fallback key
    val key = userMatcher.match(deepLinkRequest)?.key ?: HomeKey
    
  • DeepLinkUri wurde hinzugefügt. Das ist eine Kotlin Multiplatform-Version von android.net.Uri. (Id4725, b/470282247)

API-Änderungen

  • Auf compileSdk 37 aktualisiert, um dem compileSdk von Compose zu entsprechen

Fehlerkorrekturen

  • Die IllegalArgumentException der AnimatedBottomSheetSample wurde korrigiert, wenn mehrere Overlays angezeigt werden. Die Probe SceneStrategy wird jetzt korrekt für den letzten nicht-OverlayScene-Wert berechnet und unter allen Overlay-Szenen angezeigt. (If2281, b/506733412)
  • Die NavigationEvent-Abhängigkeit wurde auf Version 1.1.1 aktualisiert. Dadurch wird der No-Op-NavigationEventHandler im Inspektionsmodus entfernt, um die Funktion „Vorhersagende Zurück-Geste“ in Android Studio-Vorabversionen zu aktivieren. (I487fd)

Version 1.2.0-alpha02

22. April 2026

androidx.navigation3:navigation3-*:1.2.0-alpha02 ist veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.

API-Änderungen

  • Benennen Sie onBack in onBackCompleted um und fügen Sie onBackCancelled zu NavigationBackHandler hinzu, um abgebrochene Zurück-Gesten zu unterstützen. (I92741)
  • Fügen Sie NavigationBackHandler hinzu, um die Verarbeitung von „Zurück“-Gesten und intelligenten „Zurück“-Gesten bei Verwendung von SceneState zu vereinfachen. So können Entwickler einfacher benutzerdefinierte UI-Komponenten erstellen, die die Standard-Rückwärtsnavigation und Vorhersagegesten unterstützen, ohne Backstack-Deltas manuell berechnen zu müssen. (I6a055)
  • Fügen Sie rememberNavigationEventState hinzu, um die Verbindung von SceneState mit der Verarbeitung von intelligenten „Zurück“-Gesten zu vereinfachen. (Iae49c)

Neue Funktionen

  • Es wurde eine ResultEventBus API hinzugefügt, mit der Ergebnisse zwischen NavEntries mit dem LocalResultEventBus übergeben werden können, das von der neuen ResultEventBusNavEntryDecorator bereitgestellt wird. Übergebene Ergebnisse können als Status mit ResultEventBus#conflateAsState oder als Ergebnisfluss mit ResultEffect bewertet werden.

Version 1.2.0-alpha01

8. April 2026

androidx.navigation3:navigation3-*:1.2.0-alpha01 ist veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

Fehlerkorrekturen

  • Der Zugriff auf LocalNavAnimatedContentScope über ein OverlayScene führt nicht mehr zu einem IllegalStateException, da OverlayScenes jetzt mit einem No-Op-LocalAnimatedContentScope bereitgestellt werden. (I2f00c, b/486067688)

Version 1.1.7

26. August 2026

androidx.navigation3:navigation3-*:1.1.7 ist veröffentlicht. Version 1.1.7 enthält diese Commits.

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem vorhersagende Zurück-Gesten, die während eines Übergangs nach vorn ausgelöst werden, nicht entsprechend dem Fortschritt des Wischens animiert werden. Die Animation für die intelligente „Zurück“-Touchgeste wird jetzt richtig animiert und abgeschlossen. (Icdcb0, b/456218398)

Version 1.1.6

12. August 2026

androidx.navigation3:navigation3-*:1.1.6 ist veröffentlicht. Version 1.1.6 enthält diese Commits.

Fehlerkorrekturen

  • NavEntry.contentKey ist jetzt standardmäßig eine Kombination aus key.toString() und key::class.toString(). So wird sichergestellt, dass Datenobjekte, die denselben Namen haben, aber unterschiedliche Schnittstellen implementieren, nicht mehr denselben contentKey haben. Die key::class der JS-Plattform gibt jedoch nur den einfachen Klassennamen anstelle des voll qualifizierten Namens zurück. Daher sollte die JS-Plattform weiterhin eine benutzerdefinierte contentKey für Datenobjekte mit doppelten Namen implementieren. (I1fbbb, b/512534342)
  • Der Fehler IllegalArgumentException, der von SaveableStateHolder für die Wiederverwendung von Schlüsseln ausgegeben wurde, wenn aufgrund des schnellen Entfernens von Elementen aus dem Backstack mehrere Pop-Übergänge gleichzeitig ausgeführt wurden, wurde behoben. (I4d728, b/516312097)

Version 1.1.5

29. Juli 2026

androidx.navigation3:navigation3-*:1.1.5 ist veröffentlicht. Version 1.1.5 enthält diese Commits.

Fehlerkorrekturen

  • Die entryProvider-DSL priorisiert jetzt NavEntry, die mit einer Schlüsselinstanz erstellt wurden, z. B. entry(key = userKey) { ... }, gegenüber NavEntry, die mit einer Schlüsselklasse wie entry<UserKey>{ ... } erstellt wurden.(Ib5ec9, b/533331924)

Version 1.1.4

01. Juli 2026

androidx.navigation3:navigation3-*:1.1.4 ist veröffentlicht. Version 1.1.4 enthält diese Commits.

Fehlerkorrekturen

  • Der eingeblendete Eintrag verschwindet nicht mehr sofort, wenn ein Eintrag mit verschachtelten Metadaten mit Lambda-Werten eingeblendet wird. (Idb872, b/520494430)

Version 1.1.3

17. Juni 2026

androidx.navigation3:navigation3-*:1.1.3 ist veröffentlicht. Version 1.1.3 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem mit der Overlay-Animation wurde behoben, bei dem verschachtelte Overlays wie ModalBottomSheet unerwartet neu animiert wurden, wenn die Overlays darüber entfernt wurden. (Ia2b9e, b/502624496)

  • Die NavigationEvent-Abhängigkeit wurde auf Version 1.1.2 aktualisiert. Dadurch wurde die No-Op-Funktion NavigationEventHandler im Inspektionsmodus entfernt, um die Funktion „Vorhersagende Zurück-Geste“ in Android Studio-Vorabversionen zu aktivieren.

Version 1.1.2

19. Mai 2026

androidx.navigation3:navigation3-*:1.1.2 ist veröffentlicht. Version 1.1.2 enthält diese Commits.

Fehlerkorrekturen

  • Die NavigationEvent-Abhängigkeit wurde auf Version 1.1.1 aktualisiert. Dadurch wurde die No-Op-Funktion NavigationEventHandler im Inspektionsmodus entfernt, um die Funktion „Vorhersagende Zurück-Geste“ in Android Studio-Vorabversionen zu aktivieren.

Version 1.1.1

22. April 2026

androidx.navigation3:navigation3-*:1.1.1 ist veröffentlicht. Version 1.1.1 enthält diese Commits.

Fehlerkorrekturen

  • Der Zugriff auf LocalNavAnimatedContentScope über ein OverlayScene führt nicht mehr zu einem IllegalStateException, da OverlayScenes jetzt mit einem No-Op-LocalAnimatedContentScope bereitgestellt werden. (I2f00c, b/486067688)

Version 1.1.0

8. April 2026

androidx.navigation3:navigation3-*:1.1.0 ist veröffentlicht. Version 1.1.0 enthält diese Commits.

Version 1.1.0 ist jetzt stabil

Wichtige Änderungen seit Version 1.0.0

Gemeinsame Elemente zwischen Szenen - Navigation3 unterstützt jetzt die Behandlung von Szenen als Objekt mit gemeinsamem Element. So kann bei Szenenwechseln ein reibungsloser Übergang gewährleistet werden. Sie können diese Funktion aktivieren, indem Sie entweder NavDisplay oder rememberSceneState eine SharedTransitionScope übergeben.

SceneDecoratorStrategy – Einführung von SceneDecoratorStrategy zur Unterstützung von Anwendungsfällen wie dem Dekorieren von Szenen mit gängigen UI-Komponenten oder dem Teilen von Status zwischen Szenen.

NavMetadata-DSL – Navigation3 bietet jetzt eine neue typsichere Metadaten-DSL. Die DSL verwendet eine neue MetadataKey-Schnittstelle, mit der die Schlüssel- und Werttypen definiert werden können, die für die Metadatenzuordnung bereitgestellt werden sollen. Außerdem wurden neue NavMetadataKeys für NavDisplay-Übergänge hinzugefügt, damit sie mit der neuen Metadaten-DSL verwendet werden können, um NavDisplay Übergänge hinzuzufügen.

OverlayScene-Animationen: Die OverlayScene-Schnittstelle hat einen neuen onRemoved-Callback. Dieser Callback wird aufgerufen, nachdem ein Schlüssel, der der Szene zugeordnet ist, aus dem Backstack entfernt wurde, aber bevor er die Komposition verlässt. So können Exit-Animationen, die in onRemoved aufgerufen werden, abgeschlossen werden, bevor die Overlay-Szene aus der Komposition entfernt wird.

Weitere Änderungen - NavDisplay und rememberSceneState akzeptieren jetzt ein List<SceneStrategy> anstelle des bisherigen einzelnen Parameters SceneStrategy, der durch das Infix then verkettet wurde. – Sie können jetzt dynamisch Metadaten hinzufügen, wobei der Eintragsschlüssel über die EntryProvider-DSL berücksichtigt wird.

Version 1.1.0-rc01

25. März 2026

androidx.navigation3:navigation3-*:1.1.0-rc01 ist veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.

Fehlerkorrekturen

  • Mit NavDisplay wird jetzt dafür gesorgt, dass Einträge, die unter Overlays angezeigt werden, einen Lifecycle von maximal STARTED haben. So wird sichergestellt, dass APIs wie dropUnlessResumed weiterhin funktionieren, wenn Dialogfelder verwendet werden. (If209f, b/483966071)
  • Ein Problem in NavDisplay wurde behoben, bei dem das Hin- und Herwechseln zwischen denselben Bildschirmen und das Unterbrechen der Animationen zwischen den beiden dazu führen konnte, dass die Z-Reihenfolge der Bildschirme falsch war. (I4d491, b/459419800)

Version 1.1.0-beta01

11. März 2026

androidx.navigation3:navigation3-*:1.1.0-beta01 ist veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.

Version 1.1.0-alpha05

25. Februar 2026

androidx.navigation3:navigation3-*:1.1.0-alpha05 ist veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.

API-Änderungen

  • NavDisplay und rememberSceneState verwenden jetzt List<SceneStrategy> anstelle des vorherigen einzelnen Parameters SceneStrategy, der durch das Infix then verkettet wurde. Das entspricht eher dem List<SceneDecoratorStrategy<T>>, das für beide APIs bereits verwendet wird. Die bisherigen APIs werden nicht mehr unterstützt. (I78b2c, b/482108465)
  • Es wurde der Metadatenoperator #contains hinzugefügt, um zu prüfen, ob die Metadatenzuordnung die angegebene NavMetadataKey enthält. (Ic30db, b/485311895)
  • NavMetadataKey DialogKey für DialogSceneStrategy zur Verwendung mit der Metadata DSL hinzugefügt. (Ic7a26, b/483388817)

Version 1.1.0-alpha04

11. Februar 2026

androidx.navigation3:navigation3-*:1.1.0-alpha04 ist veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.

Neue Funktionen

  • Navigation3 bietet jetzt eine neue typsichere Metadaten-DSL. Die DSL verwendet eine neue MetadataKey-Schnittstelle, mit der die Schlüssel- und Werttypen definiert werden können, die für die Metadatenzuordnung bereitgestellt werden sollen. Außerdem wurden neue NavMetadataKeys für NavDisplay-Übergänge hinzugefügt, damit sie mit der neuen metadata-DSL verwendet werden können, um NavDisplay Übergänge hinzuzufügen. (Ic10ef, Ic049c,b/476213928)

API-Änderungen

  • Die OverlayScene-Schnittstelle hat einen neuen onRemoved-Callback zum Anhalten. Dieser Callback wird aufgerufen, nachdem ein Schlüssel, der der Szene zugeordnet ist, aus dem Backstack entfernt wurde, aber bevor er die Komposition verlässt. So können Exit-Animationen, die in onRemoved aufgerufen werden, abgeschlossen werden, bevor die Overlay-Szene aus der Komposition entfernt wird. (I29a72, b/440558061)
  • In SceneStrategy wurde die Dekorationsfunktion in eine neue SceneDecoratorStrategy aufgeteilt. Diese neue Schnittstelle sollte zum Dekorieren von Szenen verwendet werden. Es gibt neue APIs für NavDisplay und rememberSceneState, mit denen SceneDecoratorStrategies hinzugefügt werden kann. (If9385, b/477669607, b/477670333)

Fehlerkorrekturen

  • Ein Fehler wurde behoben, bei dem das Übergeben eines SharedTransitionLayout an NavDisplay oder rememberSceneState und die Verwendung von OverlayScene zu einem Absturz führte, da SharedTransitionLayout nur mit NavEntries funktioniert, die als Teil von AnimatedContent gerendert werden, und OverlayScene separat in eigenen Fenstern gerendert werden. (I1bb76, b/478664101)

Abhängigkeitsupdate

  • Ab Navigation3 1.0.1: Navigation3 ist jetzt von NavigationEvent 1.0.2 abhängig. Dadurch wird ein IllegalStateException behoben, der durch die Verwendung von NavDisplay während der AndroidStudio-Vorschau entstanden ist. (Id7212, b/477149762)

Version 1.1.0-alpha03

28. Januar 2026

androidx.navigation3:navigation3-*:1.1.0-alpha03 ist veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.

Neue Funktionen

  • Sie können jetzt dynamisch Metadaten hinzufügen, wobei der Zugangscode über die EntryProvider-DSL berücksichtigt wird. (I942fb, b/474416976)

Version 1.1.0-alpha02

14. Januar 2026

androidx.navigation3:navigation3-*:1.1.0-alpha02 ist veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.

Neue Funktionen

  • SceneStrategy unterstützt jetzt das Verschachteln von Szenen über die neue Funktion calculatedScene(Scene). Das bedeutet, dass SceneStrategy angepasst werden können, um anderen Szenen zusätzliche Funktionen zu bieten. (I5df7c,b/440333896)

Version 1.1.0-alpha01

3. Dezember 2025

androidx.navigation3:navigation3-*:1.1.0-alpha01 ist veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.

API-Änderungen

  • Navigation3 unterstützt jetzt die Behandlung von Szenen als Objekt für gemeinsame Elemente. So kann bei Szenenwechseln ein reibungsloser Übergang gewährleistet werden. Sie können diese Funktion aktivieren, indem Sie entweder NavDisplay oder rememberSceneState eine SharedTransitionScope übergeben. (I15868)

Version 1.0

Version 1.0.1

11. Februar 2026

androidx.navigation3:navigation3-*:1.0.1 ist veröffentlicht. Version 1.0.1 enthält diese Commits.

Abhängigkeitsupdate

  • Navigation3 ist jetzt von NavigationEvent 1.0.2 abhängig. Damit wird ein IllegalStateException behoben, der durch die Verwendung von NavDisplay während AndroidStudio-Vorschauen verursacht wurde. (Id7212, b/477149762)

Version 1.0.0

19. November 2025

androidx.navigation3:navigation3-*:1.0.0 ist veröffentlicht. Version 1.0.0 enthält diese Commits.

Navigation3

Version 1.0.0-rc01

5. November 2025

androidx.navigation3:navigation3-*:1.0.0-rc01 ist veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.

Fehlerkorrekturen

  • Mit NavDisplay wird jetzt ein LocalLifecycleOwner auf der Ebene Scene festgelegt, mit dem Szenenautoren feststellen können, ob alle Übergänge abgeschlossen sind, indem sie prüfen, ob Lifecycle.State RESUMED ist. Das Verhalten von LocalLifecycleOwner auf der Ebene NavEntry ist unverändert: Es bleibt auch dann auf STARTED begrenzt, wenn ein Übergang läuft, und wird zusätzlich auf CREATED begrenzt, wenn NavEntry aus dem Backstack entfernt wurde und gerade animiert wird. (I03113, b/454045829)

Version 1.0.0-beta01

22. Oktober 2025

androidx.navigation3:navigation3-*:1.0.0-beta01 ist veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.

API-Änderungen

  • SceneStrategyScope hat jetzt nur noch einen öffentlichen Konstruktor ohne Argumente, der sich für das isolierte Testen von SceneStrategy und dem zurückgegebenen Scene eignet. Für komplexere Anwendungsfälle verwenden Sie bitte rememberSceneState(). (I8440c, b/451679047)

Fehlerkorrekturen

  • Ein Problem mit einer Endlosschleife beim Verketten von SceneStrategy mit then wurde behoben. (Iba3f0, b/450323470)
  • Das Flackern des Bildschirms beim Tauschen des an NavDisplay übergebenen backStack und bei Verwendung von Animationen wurde behoben. (Ief7b5, b/450967248)

Version 1.0.0-alpha11

8. Oktober 2025

androidx.navigation3:navigation3-*:1.0.0-alpha11 ist veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.

API-Änderungen

  • Die Methode calculateScene für SceneStrategy ist nicht mehr @Composable. Stattdessen sollten Sie diese Arbeit in die Erstellung Ihrer SceneStrategy-Methode (d.h. in eine rememberMySceneStrategy()-Methode) verlagern, mit der Sie die Lebensdauer von rememberSaveable-Werten oder wichtigen remember-Anweisungen anhand der richtigen Werte vollständig definieren können. (If1733, b/448709506)
  • Der Parameter onBack für SceneStrategy.calculateScene wurde in den neuen Empfängerbereich SceneStrategyScope verschoben, um deutlicher zu machen, dass es sich um einen optionalen Parameter handelt, und um einen Erweiterungspunkt für zukünftige Navigation3-Funktionen zu schaffen. (I3aea3, b/448460407)
  • Die Lambda-Funktion onBack, die an NavDisplay und an Ihre SceneStrategy übergeben wird, enthält keinen count: Int-Parameter mehr, der angibt, wann mehrere Einträge entfernt werden sollen. Stattdessen wird die () -> Unit-Lambda-Funktion jetzt mehrmals hintereinander aufgerufen, wenn bei Ihren Szenenanfragen mehrere Einträge angezeigt werden. (Idedb5, b/446989346)
  • Entfernen Sie die Klasse NavEntryWrapper und ersetzen Sie ihre Funktionalität durch eine finale Klasse NavEntry mit einem neuen sekundären Konstruktor, der ein NavEntry mit neuem Inhalt akzeptiert. So kann ein Eintrag weiterhin mit neuen Inhalten umbrochen werden. (I7da2a, b/444447130)
  • Die Funktion navEntryDecorator, mit der ein NavEntryDecorator erstellt und zurückgegeben wird, wurde entfernt und durch die Klasse NavEntryDecorator ersetzt, die jetzt öffentlich und für die Unterklassenbildung verfügbar ist. (If81f8, b/444447434, b/447381176)
  • SavedStateNavEntryDecorator wurde in SaveableStateHolderNavEntryDecorator umbenannt, da Einträge damit mit einem SaveableStateHolder versehen werden. Der Decorator wurde auch von einer Funktion in eine Klasse umgestaltet, da er funktional eine Factory für NavEntryDecorator ist. (Ie6013, b/447381176)
  • Für benutzerdefinierte Displays, die SceneState anstelle von NavDisplay verwenden, ist die Verwendung der Komposition LocalEntriesToRenderInCurrentScene nicht mehr erforderlich. Diese ist jetzt intern. (Ic40ef, b/414668196)
  • SceneSetupNavEntryDecorator und rememberSceneSetupNavEntryDecorator() wurden aus der öffentlichen API entfernt. Diese Funktion ist jetzt standardmäßig enthalten, ohne dass Sie sie manuell einfügen müssen. (Ieae42, b/444479133)
  • NavEntry, DialogScene, SinglePaneScene und SceneState implementieren jetzt „equals“. (I96121)
  • Die Szenenoberfläche hat ein neues Metadatenfeld, um szenenspezifische Metadaten für NavDisplay anzuhängen. So kann eine Szene die Metadaten für NavDisplay überschreiben, z. B. mit Übergängen. (I1fd96, b/443955625)
  • Vereinfachen Sie die Signatur von rememberNavBackStack, indem Sie den redundanten generischen Typparameter entfernen. Die Funktion akzeptiert jetzt vararg elements: NavKey. (I03e45)
  • Die Standardanimationen für NavDisplay sind jetzt Teil der gemeinsamen API und können daher von allen Plattformen aufgerufen werden. (I71af9, b/447147159)
  • Benennen Sie EntryProviderBuilder in EntryProviderScope um, um genau widerzuspiegeln, dass die Klasse eine Kotlin-DSL ist, die einen Bereich zum Erstellen von NavEntries bietet. (Ia7465)

Fehlerkorrekturen

  • rememberNavBackStack() erzwingt jetzt die polymorphe Serialisierung für NavKey und erfordert ein benutzerdefiniertes SavedStateConfiguration, das so konfiguriert ist, dass der Status korrekt wiederhergestellt wird. Die KDoc wurden aktualisiert, um der Anforderung Rechnung zu tragen, dass alle NavKey-Untertypen im bereitgestellten SerializersModule registriert werden müssen. (I6de37,I782f2, b/446664383)

Version 1.0.0-alpha10

24. September 2025

androidx.navigation3:navigation3-*:1.0.0-alpha10 ist veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.

API-Änderungen

  • Fügen Sie eine neue NavDisplay-Überladung hinzu, die eine Liste von NavEntry<T> akzeptiert, die mit rememberDecoratedNavEntries dekoriert wurde. (I4025b, b/441940314)
  • DialogScene wurde in ein neues Paket verschoben. (Ia5840)
  • Entfernen Sie die öffentliche API DecorateNavEntry. Verwenden Sie stattdessen rememberDecoratedNavEntries, um einen NavEntry mit einer Liste von Dekoratoren zu umschließen. (Id8c09)
  • Die Navigation3-Benutzeroberfläche bietet jetzt neue Standard-transitionSpec-Properties. (Ibcabd)
  • Es wurde ein neues SceneState-Objekt hinzugefügt, um die Verwaltung von Szenen zu erleichtern. Außerdem gibt es eine neue NavDisplay-Überladung, die SceneState und NavigationEventState akzeptiert. (Idfb46, b/444479133)
  • Mit NavDisplay können Sie die Übergänge jetzt anpassen. Dazu wird anhand der currentState und targetState des Transition ermittelt, wohin Scene und woher Sie wechseln. (I906cc, b/443872322)
  • NavigationEventInfo ist jetzt ein abstract class anstelle eines interface. Aktualisieren Sie alle benutzerdefinierten Implementierungen, damit sie von der Klasse erben (z. B. data class MyInfo : NavigationEventInfo()). (I1e59c, b/444734264)
  • Die Handler-APIs für navigationevent-compose wurden aktualisiert. NavigationEventHandler und NavigationBackHandler (und Varianten) unterstützen jetzt eine neue Überladung, die ein gehobenes NavigationEventState akzeptiert. Die einfachen Überladungen (mit currentInfo) bleiben erhalten und verwenden jetzt intern dieses neue Statusmodell. (Ic3251, b/444734264)
  • Alle Scene APIs wurden aus navigation3-ui in navigation3-runtime verschoben. Das bedeutet, dass sie jetzt auf allen Plattformen verfügbar sind, die von navigation3-runtime unterstützt werden. (I431d0, b/444449993)
  • Es wurde eine neue rememberDecoratedNavEntries-Überladung hinzugefügt, die eine Liste von NavEntry zum Dekorieren verwendet. Die Eingabe-Einträge können bereits mit anderen Eintragsdekorationen versehen sein. (I5a034, b/444230270)
  • Parameter vom Platzhaltertyp „navigation3“ entfernen (I02540)
  • Die Verarbeitung von Generics für die entryProvider-DSL wurde verbessert. Wenn Sie zuvor androidx.navigation3.runtime.entry importiert haben, ist dies nicht mehr erforderlich. (I299fc)
  • Beschränken Sie die auf Reflexion basierende NavBackStackSerializer-Überladung auf Android. Dadurch werden implizite Serialisierungsfehler zur Laufzeit auf Nicht-Android-Plattformen verhindert, indem die Verwendung der expliziten SavedStateConfiguration-Überladung in Multiplattformcode erzwungen wird. (I73313, b/420443609)
  • Erstelle swipeEdge von NavigationEvent als @IntDef (Icee54, b/443950342)
  • Beschränken Sie die NavBackStack-Serialisierung auf Android. So werden Laufzeitfehler auf Nicht-Android-Plattformen verhindert. Verwenden Sie für das plattformübergreifende Speichern des Status die rememberNavBackStack-Überladung mit einem expliziten SavedStateConfiguration. (I1e418, b/420443609)

Fehlerkorrekturen

  • Absturz bei der intelligenten „Zurück“-Geste beheben, wenn ein verschachteltes NavDisplay einen einzelnen untergeordneten Eintrag hat. (I2cdc0, b/441933162)

Version 1.0.0-alpha09

10. September 2025

androidx.navigation3:navigation3-*:1.0.0-alpha09 ist veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.

API-Änderungen

  • DecoratedNavEntryProvider wurde durch rememberDecoratedNavEntries ersetzt, das NavEntries erstellt und zurückgibt, die mit der Liste der bereitgestellten Dekoratoren versehen sind (I0fe1c, b/441328236).
  • NavBackStack ist jetzt generisch über den Typ NavKey. So können Apps und Bibliotheken benutzerdefinierte Schlüsseltypen für ihre Backstacks definieren, anstatt auf NavKey beschränkt zu sein. (I4d190,Iad2f4, b/420443609)
  • NavBackStack ist jetzt @kotlinx.serialization.Serializable. So lässt sich der Navigationsstatus bei Prozessbeendigung und Konfigurationsänderungen ohne zusätzlichen Boilerplate-Code speichern und wiederherstellen. (I2c3cf, b/420443609)
  • RememberNavBackStack wurde zu commonMain verschoben, damit sie für alle Plattformziele verfügbar ist. (Id69e7, b/420443609)

Fehlerkorrekturen

  • NavDisplay verschiebt jetzt jede einzelne NavEntry korrekt in die richtige Lifecycle.State. (I30aac, b/440145700)
  • Ein Problem wurde behoben, bei dem NavDisplay alle verschachtelten NavigationEventDispatcherOwner ignorierte, die über LocalNavigationEventDispatcherOwner der NavigationEvent-Bibliothek festgelegt wurden. (I6224a)

Änderungen an Abhängigkeiten

Version 1.0.0-alpha08

27. August 2025

androidx.navigation3:navigation3-*:1.0.0-alpha08 ist veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.

Neue Funktionen

  • Den Navigation3 Runtime-Artefakten wurden neue Kotlin Multiplatform-Ziele (KMP) hinzugefügt. Navigation3 Runtime unterstützt jetzt insgesamt die folgenden Plattformen: JVM (Android und Desktop), Native (Linux, iOS, watchOS, macOS, MinGW) und Web (JavaScript, WasmJS). (I55078, b/424410398, b/419294028, b/419046226) Hinweis: Dies bietet keine KMP-Ziele für das Navigation3 UI-Artefakt. Auf anderen Plattformen müssen Sie Ihre eigene benutzerdefinierte NavDisplay implementieren. Wenn Sie möchten, dass diese Funktion unterstützt wird, stimmen Sie bitte für das Jetbrains-Problem ab und verfolgen Sie dort den Fortschritt.
  • Das NavDisplayInfo-Objekt ist jetzt öffentlich und kann verwendet werden, um die Liste der sichtbaren Einträge aus NavDisplay abzurufen. (Ibc91f)

API-Änderungen

  • Es wurde ein neues NavBackStackSerializer hinzugefügt, das in Verbindung mit rememberNavBackStack zum Wiederherstellen des Status verwendet werden kann. rememberNavBackStack() akzeptiert jetzt auch ein SavedStateConfiguration, mit dem Sie Ihre eigene Konfiguration bereitstellen können. (I2f4d2, I4cd58, b/420443609)

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem durch die Navigation falsche Lifecycle-Ereignisse ausgelöst wurden. (I8bf6d, b/425901162, b/434109022)

Bekannte Probleme

  • Durch I8bf6d wurde ein Fehler eingeführt, der dazu führte, dass Lebenszyklen auf Szenen statt auf einzelnen Einträgen basierten. Dadurch wurde der Lebenszyklus in allen Fällen unterbrochen, in denen der für NavEntry bereitgestellte key kein String ist oder Ihr NavEntry den contentKey nicht überschrieben und auf den key gesetzt hat. Dadurch wird erzwungen, dass Ihr Schlüssel in einem Bundle gespeichert werden kann. Dieser Fehler wurde für die nächste Version behoben. (b/440145700)

Version 1.0.0-alpha07

13. August 2025

androidx.navigation3:navigation3-*:1.0.0-alpha07 ist veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.

MinSdk-Update

API-Änderungen

  • SavedStateNavEntryDecorator verwendet jetzt die in SaveableStateProvider integrierte SaveableStateRegistry, um Zustände zu speichern und wiederherzustellen. (If8d9a)
  • Der predictivePopTransitionSpec erhält jetzt die Wischkante als Parameter. So können Sie den Übergang anpassen, je nachdem, an welcher Kante der Nutzer die Vorhersage-Geste gestartet hat. (I753a8)

Fehlerkorrekturen

  • Ein Problem wurde behoben, durch das benutzerdefinierte Szenen unendlich oft neu berechnet wurden, weil die letzte Szene nicht gespeichert wurde. (I7ba84, b/418153031)

Abhängigkeitsupdate

Version 1.0.0-alpha06

30. Juli 2025

androidx.navigation3:navigation3-*:1.0.0-alpha06 ist veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.

Abhängigkeitsupdate

Version 1.0.0-alpha05

2. Juli 2025

androidx.navigation3:navigation3-*:1.0.0-alpha05 ist veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.

Geändertes Verhalten

  • Der Status von NavEntry basiert jetzt ausschließlich auf der aktuellen Liste der Dekoratoren, die an NavDisplay übergeben werden. Das bedeutet, dass Dekoratoren bei mehreren Backstacks entlang Ihrer Backstacks getauscht werden sollten, um den Status der NavEntries im Backstack beizubehalten. Andernfalls werden die Status so gelöscht, als wären die Einträge entfernt worden (anstatt getauscht). (I7a759, b/428033667)

Version 1.0.0-alpha04

18. Juni 2025

androidx.navigation3:navigation3-*:1.0.0-alpha04 ist veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.

API-Änderungen

  • NavEntry.content ist jetzt privat. Wenn Sie NavEntry-Inhalte aufrufen möchten, rufen Sie die neue NavEntry.Content() API auf. Für den Aufruf ist kein key-Parameter mehr erforderlich. (Icd0fd, b/420991203)
  • NavEntry.key ist jetzt ein privates Feld. Die NavEntry und die zugehörigen Status sollten über das neue Feld contentKey identifiziert werden. Dieses wird aus der neuen Lambda-Funktion contentKeyFactory generiert und hat standardmäßig einen speicherbaren Hash, der aus NavEntry.key generiert wird (I81a6c, b/422001357, b/420991203 I2d7d4, b/420991203, b/422841812).

Änderungen an Abhängigkeiten

  • Navigation3 hängt jetzt vom neuen androidx.navigationevent.compose-Artefakt ab.

Version 1.0.0-alpha03

4. Juni 2025

androidx.navigation3:navigation3-*:1.0.0-alpha03 ist veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

Fehlerkorrekturen

  • In Navigation3 werden keine Dekoratorstatus für backStacks mehr gelöscht, die ausgetauscht und durch eine andere backStack-Instanz ersetzt wurden. (I28a42, b/415076044)

Version 1.0.0-alpha02

23. Mai 2025

androidx.navigation3:navigation3-*:1.0.0-alpha02 ist veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem mit dem SavedStateNavEntryDecorator wurde behoben, das zu Kollisionen für verschiedene Datenklassen mit denselben Attributwerten geführt hat. (b/418070648, Iff4775)
  • Ein Problem mit einer fehlenden Klasse wurde behoben, das zu Abstürzen geführt hat, wenn die App ohne explizite Abhängigkeiten ausgeführt wurde. (b/419049149, I4b4ed)

Version 1.0.0-alpha01

20. Mai 2025

androidx.navigation3:navigation3-*:1.0.0-alpha01 ist veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.

Neue Funktionen

Navigation3 ist eine neue Navigationsbibliothek, die speziell für die In-App-Navigation mit Jetpack Compose entwickelt wurde. Das androidx.navigation3.runtime-Artefakt bietet die Bausteine, während das androidx.navigation3.ui-Artefakt die UI-Ebene über die NavDisplay API bereitstellt. Entwickler können ihren eigenen Status direkt an die zusammensetzbare Funktion NavDisplay übergeben. Der Inhalt wird dann basierend auf Änderungen im Entwicklerstatus geändert.

@Serialiable object Home : NavKey
@Serialiable object Chat : NavKey

val backStack = rememberNavBackStack(Home)

NavDisplay(backStack, entryProvider = entryProvider {
  entry<Home> {
    Column {
      Text(“Home”)
      Button(onClick = { backStack.add(Chat) } ) {
        Text(“Go to Chat”)
      } 
    }
  }
  entry<Chat> { /* My Composable Content */ }
})

Weitere Informationen finden Sie im Navigation3-Leitfaden.