navigation3
| Letzte Aktualisierung | Stabile Version | Releasekandidat | Betarelease | Alpha-Release |
|---|---|---|---|---|
| 22. Oktober 2025 | - | - | 1.0.0-beta01 | - |
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 im Maven-Repository von Google.
Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:
Groovy
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.0.0-beta01" implementation "androidx.navigation3:navigation3-ui:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.0.0-beta01") implementation("androidx.navigation3:navigation3-ui:1.0.0-beta01") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem stimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Für dieses Artefakt gibt es keine Versionshinweise.
Version 1.0
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
SceneStrategyScopehat jetzt nur noch einen öffentlichen Konstruktor ohne Argumente, der sich für das isolierte Testen vonSceneStrategyund dem zurückgegebenenSceneeignet. Für komplexere Anwendungsfälle verwenden Sie bitterememberSceneState(). (I8440c, b/451679047)
Fehlerkorrekturen
- Eine Endlosschleife beim Verketten von
SceneStrategymitthenwurde behoben. (Iba3f0, b/450323470) - Das Flackern des Bildschirms beim Tauschen des
backStack, das anNavDisplayübergeben wurde, und bei der 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
calculateScenefürSceneStrategyist nicht mehr@Composable. Stattdessen sollten Sie diese Arbeit in die Konstruktion IhrerSceneStrategy-Methode (d.h. in einerememberMySceneStrategy()-Methode) verlagern, damit Sie die Lebensdauer allerrememberSaveable-Werte oder wichtigenremember-Anweisungen anhand der richtigen Werte definieren können. (If1733, b/448709506) - Der Parameter
onBackfürSceneStrategy.calculateScenewurde in den neuen EmpfängerbereichSceneStrategyScopeverschoben, um deutlicher zu machen, dass es sich um einen optionalen Parameter handelt, und um einen Erweiterungspunkt für zukünftige Navigation3-Funktionen bereitzustellen. (I3aea3, b/448460407) - Die Lambda-Funktion
onBack, die anNavDisplayund an IhreSceneStrategyübergeben wird, enthält keinencount: Int-Parameter mehr, der angibt, wann mehrere Einträge entfernt werden sollen. Stattdessen wird die() -> Unit-Lambda-Funktion jetzt mehrmals hintereinander aufgerufen, wenn in Ihrer Szene mehrere Einträge angefordert werden. (Idedb5, b/446989346) - Entfernen Sie die Klasse
NavEntryWrapperund ersetzen Sie ihre Funktionalität durch eine endgültige KlasseNavEntrymit einem neuen sekundären Konstruktor, der einNavEntrymit neuem Inhalt akzeptiert. So kann weiterhin Unterstützung für das Umschließen eines Eintrags mit neuen Inhalten angeboten werden. (I7da2a, b/444447130) - Die Funktion
navEntryDecorator, die einNavEntryDecoratorerstellt und zurückgibt, wurde entfernt und durch die KlasseNavEntryDecoratorersetzt, die jetzt öffentlich und für die Unterklassifizierung verfügbar ist. (If81f8, b/444447434, b/447381176) SavedStateNavEntryDecoratorwurde inSaveableStateHolderNavEntryDecoratorumbenannt, da Einträge damit mit einemSaveableStateHolderversehen werden. Der Decorator wurde auch von einer Funktion zu einer Klasse umgestaltet, da er funktional eine Factory fürNavEntryDecoratorist. (Ie6013, b/447381176)- Für benutzerdefinierte Displays, die
SceneStateanstelle vonNavDisplayverwenden, ist die Verwendung der KompositionLocalEntriesToRenderInCurrentScenenicht mehr erforderlich. Diese ist jetzt intern. (Ic40ef, b/414668196) SceneSetupNavEntryDecoratorundrememberSceneSetupNavEntryDecorator()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,SinglePaneSceneundSceneStateimplementieren jetzt alle „equals“. (I96121)- Die Szenenoberfläche hat ein neues Metadatenfeld, mit dem szenenspezifische Metadaten für NavDisplay angehängt werden können. 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 jetztvararg elements: NavKey. (I03e45) - Die Standardanimationen für
NavDisplaysind jetzt Teil der gemeinsamen API, sodass sie von allen Plattformen aus aufgerufen werden können. (I71af9, b/447147159) - Benennen Sie
EntryProviderBuilderinEntryProviderScopeum, um genau widerzuspiegeln, dass die Klasse eine Kotlin-DSL ist, die einen Bereich zum Erstellen vonNavEntriesbietet. (Ia7465)
Fehlerkorrekturen
rememberNavBackStack()erzwingt jetzt die polymorphe Serialisierung für NavKey und erfordert ein benutzerdefiniertesSavedStateConfiguration, das so konfiguriert ist, dass der Status korrekt wiederhergestellt wird. Die KDoc-Dokumentation wurde 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 vonNavEntry<T>akzeptiert, die mitrememberDecoratedNavEntriesdekoriert wurde. (I4025b, b/441940314) DialogScenewurde in ein neues Paket verschoben. (Ia5840)- Entfernen Sie die öffentliche API
DecorateNavEntry. Verwenden Sie stattdessenrememberDecoratedNavEntries, um einen NavEntry mit einer Liste von Dekoratoren zu umschließen. (Id8c09) - Die Navigation3-Benutzeroberfläche bietet jetzt neue Standard-
transitionSpec-Properties. (Ibcabd) - Ein neues
SceneState-Objekt wurde hinzugefügt, um die Verwaltung von Szenen zu erleichtern. Außerdem gibt es eine neueNavDisplay-Überladung, dieSceneStateundNavigationEventStateverwendet. (Idfb46, b/444479133) - Mit
NavDisplaykönnen Sie die Übergänge jetzt anpassen. Dazu wird dieScenederTransitionund diecurrentStateundtargetStateberücksichtigt. (I906cc, b/443872322) NavigationEventInfoist jetzt einabstract classstatt einesinterface. Aktualisieren Sie alle benutzerdefinierten Implementierungen, damit sie von der Klasse erben (z. B.data class MyInfo : NavigationEventInfo()). (I1e59c, b/444734264)- Die
navigationevent-compose-Handler-APIs wurden aktualisiert.NavigationEventHandlerundNavigationBackHandler(und Varianten) unterstützen jetzt eine neue Überladung, die gehosteteNavigationEventStates akzeptiert. Die einfachen Überladungen (mitcurrentInfo) bleiben erhalten und verwenden jetzt intern dieses neue Statusmodell. (Ic3251, b/444734264) - Alle Scene APIs wurden von navigation3-ui zu 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 vonNavEntryzum Dekorieren akzeptiert. Die Eingabe kann bereits mit anderen Eintragsdekorationen versehen sein. (I5a034, b/444230270) - Parameter vom Typ „navigation3“-Wildcard entfernen (I02540)
- Die Verarbeitung von Generics für die
entryProvider-DSL wurde verbessert. Wenn Sie zuvorandroidx.navigation3.runtime.entryimportiert 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, da die Verwendung der explizitenSavedStateConfiguration-Überladung in Multiplattformcode erzwungen wird. (I73313, b/420443609) - Mache
NavigationEventsswipeEdgezu einem@IntDef(Icee54, b/443950342) - Beschränken Sie die
NavBackStack-Serialisierung auf Android. Dadurch werden Laufzeitfehler auf Nicht-Android-Plattformen verhindert. Verwenden Sie für das plattformübergreifende Speichern des Status dierememberNavBackStack-Überladung mit einem explizitenSavedStateConfiguration. (I1e418, b/420443609)
Fehlerkorrekturen
- Behebt einen Absturz bei der Vorhersage von „Zurück“, wenn ein verschachteltes
NavDisplayeinen 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
DecoratedNavEntryProviderwurde durchrememberDecoratedNavEntriesersetzt, das NavEntries erstellt und zurückgibt, die mit der Liste der bereitgestellten Dekoratoren (I0fe1c, b/441328236) versehen sind.NavBackStackist jetzt generisch über den TypNavKey. So können Apps und Bibliotheken benutzerdefinierte Schlüsseltypen für ihre Backstacks definieren, anstatt aufNavKeybeschränkt zu sein. (I4d190,Iad2f4, b/420443609)NavBackStackist 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)RememberNavBackStackwurde zucommonMainverschoben, damit es auf allen Plattformzielen verfügbar ist. (Id69e7, b/420443609)
Fehlerkorrekturen
NavDisplayverschiebt jetzt jede einzelneNavEntrykorrekt in die richtigeLifecycle.State. (I30aac, b/440145700)- Ein Problem wurde behoben, durch das
NavDisplayalle verschachteltenNavigationEventDispatcherOwnerignorierte, die überLocalNavigationEventDispatcherOwnerderNavigationEvent-Bibliothek festgelegt wurden. (I6224a)
Änderungen an Abhängigkeiten
- Navigation3 hängt jetzt von NavigationEvent Alpha08 ab.
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 Runtimeunterstü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 dasNavigation3 UI-Artefakt. Auf anderen Plattformen müssen Sie Ihre eigene benutzerdefinierteNavDisplayimplementieren. Wenn Sie möchten, dass diese Funktion unterstützt wird, stimmen Sie hier für das Jetbrains-Problem ab und verfolgen Sie den Fortschritt. - Das
NavDisplayInfo-Objekt ist jetzt öffentlich und kann verwendet werden, um die Liste der sichtbaren Einträge aus demNavDisplayabzurufen. (Ibc91f)
API-Änderungen
- Es wurde ein neues
NavBackStackSerializerhinzugefügt, das in Verbindung mitrememberNavBackStackverwendet werden kann, um den Status wiederherzustellen.rememberNavBackStack()akzeptiert jetzt auch einSavedStateConfiguration, mit dem Sie Ihre eigene Konfiguration bereitstellen können. (I2f4d2, I4cd58, b/420443609)
Fehlerkorrekturen
- Beim Navigieren wurden fälschlicherweise Lifecycle-Ereignisse ausgelöst. Dieses Problem wurde behoben. (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
NavEntrybereitgestelltekeykeinStringist oder IhrNavEntrydencontentKeynicht überschrieben und auf denkeygesetzt hat. Dadurch wird erzwungen, dass Ihr Schlüssel in einemBundlegespeichert 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
- Der Standardwert für „minSdk“ für AndroidX wurde von API 21 auf API 23 verschoben (Ibdfca, b/380448311, b/435705964, b/435705223).
API-Änderungen
SavedStateNavEntryDecoratorverwendet jetzt die inSaveableStateProviderintegrierteSaveableStateRegistry, um Zustände zu speichern und wiederherzustellen. (If8d9a)predictivePopTransitionSpecerhält jetzt den Wischrand als Parameter. So können Sie den Übergang anpassen, je nachdem, von welchem Rand der Nutzer die Vorhersage-Geste „Zurück“ 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
- Navigation3 hängt jetzt von Navigation Event
1.0.0-alpha06ab.
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
- Navigation3 hängt jetzt von Navigation Event
1.0.0-alpha05ab.
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
NavEntrybasiert jetzt ausschließlich auf der aktuellen Liste der Dekoratoren, die anNavDisplayü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 eines Tauschs). (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.contentist jetzt privat. UmNavEntry-Inhalte aufzurufen, rufen Sie die neueNavEntry.Content()-API auf. Für den Aufruf ist keinkey-Parameter mehr erforderlich. (Icd0fd, b/420991203)NavEntry.keyist jetzt ein privates Feld.NavEntryund die zugehörigen Status sollten durch das neue FeldcontentKeyidentifiziert werden, das aus der neuen Lambda-FunktioncontentKeyFactorygeneriert wird und standardmäßig einen speicherbaren Hash enthält, der ausNavEntry.keygeneriert 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
Navigation3löscht nicht mehr die Dekoratorstatus fürbackStacks, die ausgetauscht und durch eine anderebackStack-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
SavedStateNavEntryDecoratorwurde 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 enthält 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.