navigation3
Letzte Aktualisierung | Stabile Version | Releasekandidat | Betarelease | Alpha-Release |
---|---|---|---|---|
8. Oktober 2025 | - | - | - | 1.0.0-alpha11 |
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-alpha11" implementation "androidx.navigation3:navigation3-ui:1.0.0-alpha11" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.0.0-alpha11") implementation("androidx.navigation3:navigation3-ui:1.0.0-alpha11") }
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-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ürSceneStrategy
ist 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
onBack
fürSceneStrategy.calculateScene
wurde in den neuen EmpfängerbereichSceneStrategyScope
verschoben, 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 anNavDisplay
und 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
NavEntryWrapper
und ersetzen Sie ihre Funktionalität durch eine finale KlasseNavEntry
mit einem neuen sekundären Konstruktor, der einNavEntry
mit 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 einNavEntryDecorator
erstellt und zurückgibt, wurde entfernt und durch die KlasseNavEntryDecorator
ersetzt, die jetzt öffentlich und für die Unterklassenbildung verfügbar ist. (If81f8, b/444447434, b/447381176) SavedStateNavEntryDecorator
wurde inSaveableStateHolderNavEntryDecorator
umbenannt, da Einträge damit mit einemSaveableStateHolder
versehen werden. Der Decorator wurde auch von einer Funktion zu einer Klasse umgestaltet, da er funktional eine Factory fürNavEntryDecorator
ist. (Ie6013, b/447381176)- Für benutzerdefinierte Displays, bei denen
SceneState
anstelle vonNavDisplay
verwendet wird, ist die Verwendung der KompositionLocalEntriesToRenderInCurrentScene
nicht mehr erforderlich. Diese ist jetzt intern. (Ic40ef, b/414668196) SceneSetupNavEntryDecorator
undrememberSceneSetupNavEntryDecorator()
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
undSceneState
implementieren 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
NavDisplay
sind jetzt Teil der gemeinsamen API, sodass sie von allen Plattformen aus aufgerufen werden können. (I71af9, b/447147159) - Benennen Sie
EntryProviderBuilder
inEntryProviderScope
um, um genau widerzuspiegeln, dass die Klasse eine Kotlin-DSL ist, die einen Bereich zum Erstellen vonNavEntries
bietet. (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 mitrememberDecoratedNavEntries
dekoriert wurde. (I4025b, b/441940314) DialogScene
wurde 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, dieSceneState
undNavigationEventState
verwendet. (Idfb46, b/444479133) - Mit
NavDisplay
können Sie die Übergänge jetzt anpassen. Dazu wird anhand derTransition
-AttributecurrentState
undtargetState
ermittelt, von und zu welchemScene
Sie wechseln. (I906cc, b/443872322) NavigationEventInfo
ist jetzt einabstract class
statt 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.NavigationEventHandler
undNavigationBackHandler
(und Varianten) unterstützen jetzt eine neue Überladung, die gehosteteNavigationEventState
s 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 vonNavEntry
zum 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.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, da die Verwendung der explizitenSavedStateConfiguration
-Überladung in Multiplattformcode erzwungen wird. (I73313, b/420443609) - Mache
NavigationEvent
sswipeEdge
zu 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
- Beheben Sie den Absturz während der Vorhersage des Zurück-Vorgangs, 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 durchrememberDecoratedNavEntries
ersetzt, das NavEntries erstellt und zurückgibt, die mit der Liste der bereitgestellten Dekoratoren (I0fe1c, b/441328236) versehen sind.NavBackStack
ist jetzt generisch über den TypNavKey
. So können Apps und Bibliotheken benutzerdefinierte Schlüsseltypen für ihre Backstacks definieren, anstatt aufNavKey
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 zucommonMain
verschoben, damit es auf allen Plattformzielen verfügbar ist. (Id69e7, b/420443609)
Fehlerkorrekturen
NavDisplay
verschiebt jetzt jede einzelneNavEntry
korrekt in die richtigeLifecycle.State
. (I30aac, b/440145700)- Ein Problem wurde behoben, durch das
NavDisplay
alle verschachteltenNavigationEventDispatcherOwner
ignorierte, die überLocalNavigationEventDispatcherOwner
derNavigationEvent
-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 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 dasNavigation3 UI
-Artefakt. Auf anderen Plattformen müssen Sie Ihre eigene benutzerdefinierteNavDisplay
implementieren. 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 demNavDisplay
abzurufen. (Ibc91f)
API-Änderungen
- Es wurde ein neues
NavBackStackSerializer
hinzugefügt, das in Verbindung mitrememberNavBackStack
verwendet 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
NavEntry
bereitgestelltekey
keinString
ist oder IhrNavEntry
dencontentKey
nicht überschrieben und auf denkey
gesetzt hat. Dadurch wird erzwungen, dass Ihr Schlüssel in einemBundle
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
- 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
SavedStateNavEntryDecorator
verwendet jetzt die inSaveableStateProvider
integrierteSaveableStateRegistry
, um Zustände zu speichern und wiederherzustellen. (If8d9a)predictivePopTransitionSpec
erhä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-alpha06
ab.
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-alpha05
ab.
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 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.content
ist 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.key
ist jetzt ein privates Feld.NavEntry
und die zugehörigen Status sollten durch das neue FeldcontentKey
identifiziert werden, das aus der neuen Lambda-FunktioncontentKeyFactory
generiert wird und standardmäßig einen speicherbaren Hash enthält, der ausNavEntry.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
Navigation3
lö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
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.