navigation3
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja alfa |
|---|---|---|---|---|
| 23 września 2026 r. | 1.2.0 | - | - | 1.3.0-alpha01 |
Deklarowanie zależności
Aby dodać zależność od navigation3, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:
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") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Prześlij opinię
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać głos na istniejący problem, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.3
Wersja 1.3.0-alpha01
23 września 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zmiany.
** Poprawki błędów **
- Naprawiliśmy przekazywanie animacji przewidywanego przejścia wstecz w
NavDisplay, przenosząc ją doDeferredAnimatedContenti rozwiązując problemy z przekazywaniem przejść. I145eaedd b/430807423
Brak informacji o wersji tego artefaktu.
Navigation3 w wersji 1.2
Wersja 1.2.0
23 września 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.2.0 Wersja 1.2.0 zawiera te zmiany.
Wersja 1.2.0 jest już stabilna
Ważne zmiany od wersji 1.1.0
Result API
- Ten nowy interfejs API umożliwia przekazywanie wyników między
NavEntriesza pomocąResultEventBusudostępnianego przezLocalResultEventBusiResultEventBusNavEntryDecorator. - Dodaliśmy
rememberResultEventBus, aby umożliwić przenoszenie elementuResultEventBuspoza elementResultEventBusNavEntryDecoratori przekazywanie go do elementurememberResultEventBusNavEntryDecorator. - Przekazane wyniki są dostępne jako stan z użyciem
ResultEventBus#conflateAsStatelub zbierane jako strumień wyników z użyciemResultEffect.
Deep Link API
Navigation3 obsługuje teraz precyzyjne linki Kotlin Multiplatform (KMP) w androidx.navigation3.runtime.deeplink za pomocą DeepLinkRequest, DeepLinkUri i DeepLinkMatcher.
DeepLinkRequestiRequestExtras: reprezentują żądanie precyzyjnego linku utworzone na podstawieDeepLinkUri, ciągu znaków URI lubIntentna Androidzie. Dodatkowe metadane żądania można dołączyć za pomocą bezpiecznego pod względem typów konteneraRequestExtrasutworzonego za pomocąrequestExtrasDSL iRequestExtrasKey<T>.DeepLinkMatcher: reprezentuje precyzyjny link, który można dopasować doDeepLinkRequest. Każda instancja dopasowania jest powiązana z kluczem nawigacji, który obsługuje ten precyzyjny link. Klucz nawigacji może być powiązany z wieloma dopasowaniami. WywołanieDeepLinkMatcher.matchzwróciMatchResult, który zawiera powiązany klawisz nawigacyjny, jeśli dopasowanie się powiedzie. Dostępne są 2 domyślne implementacjeDeepLinkMatcher:UriDeepLinkMatcherdo dopasowywania precyzyjnych linków na podstawieUriiStaticKeyDeepLinkMatcherdo dopasowywania precyzyjnych linków tylko zDeepLinkMatcher.Filter, które pasują do wartości logicznej.BackStackMatcher:DeepLinkMatcherdo utworzenia syntetycznego stosu wstecznego po znalezieniu pasującego precyzyjnego linku.BackStackMatchermożna utworzyć za pomocą funkcji rozszerzeniaDeepLinkMatcher.withBackStack.
Przewidywane przejście wstecz
- Dodano
NavigationBackHandlerirememberNavigationEventState, aby uprościć łączenieSceneStatez obsługą przewidywanego przejścia wstecz (onBackCompletedionBackCancelled). Umożliwia to niestandardowym komponentom interfejsu obsługę standardowego przechodzenia wstecz i gestów przewidywanego przejścia wstecz bez ręcznego obliczania różnic w stosie wstecznym. - Ulepszone przejścia przewidywanego przejścia wstecz, w tym obsługa gestów przewidywanego przejścia wstecz wywoływanych w trakcie animacji do przodu.
Inne zmiany
NavEntry.contentKeydomyślnie jest teraz połączeniemkey.toString()ikey::class.toString(), co zapobiega kolizjom kluczy między kluczamidata object, które mają tę samą prostą nazwę w różnych interfejsach.EntryProvidernadaje teraz priorytet dopasowywaniu na podstawie kluczowych instancji, a nie kluczowych typów.- Dodano sprawdzanie kodu, aby upewnić się, że implementacje
Scenesą albodata classes, albo implementująequalsihashCode.
Wersja 1.2.0-rc01
9 września 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zmiany.
Poprawki błędów
- Zabraniaj powtarzających się nazw zmiennych w wzorcach identyfikatorów URI precyzyjnych linków. (I8985c, b/522343165)
Wersja 1.2.0-beta01
26 sierpnia 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniono
DeepLinkRequest.extraszMap<String, Any>na nową klasęRequestExtras, która przechowuje paryRequestExtrasKey<T>iT.RequestExtrasmożna utworzyć za pomocą języka DSLrequestExtras. (Ic929d, b/543883369)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że gesty powrotu predykcyjnego wywoływane podczas przejścia do przodu nie były animowane w odpowiedzi na postęp przesuwania. Animacja przewidywanego przejścia wstecz zostanie teraz odtworzona i zakończona prawidłowo. (Icdcb0, b/456218398)
- Dodano sprawdzanie kodu, aby upewnić się, że implementacje
Scenesą klasami danych lub implementują metody equals i hashCode, co zapewnia używanie tego samegoScenew odpowiednich przypadkach. (Ibdf0d, b/542316099) NavEntry.contentKeyjest teraz domyślnie kompozycjąkey.toString()ikey::class.toString(). Dzięki temu obiekty danych o tej samej nazwie, ale implementujące różne interfejsy, nie będą już miały tego samegocontentKey. Platforma JSkey::classzwraca jednak tylko prostą nazwę klasy zamiast pełnej i jednoznacznej nazwy, więc w przypadku obiektów danych o zduplikowanych nazwach platforma JS powinna nadal implementować niestandardową funkcjęcontentKey. (I1fbbb, b/512534342)- Naprawiono błąd
IllegalArgumentExceptionzgłaszany przezSaveableStateProviderw przypadku zduplikowanych kluczy używanych podczas szybkiego przechodzenia wstecz, gdy w toku jest wiele przejść do wyskakujących okien. (I4d728, b/516312097)
Wersja 1.2.0-alpha07
29 lipca 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.2.0-alpha07 Wersja 1.2.0-alpha07 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano klasę abstrakcyjną
WrappedMatchResult, aby opakować inną klasęDeepLinkMatcher.MatchResult. Umożliwia to nakładanie dostosowanych wyników wyszukiwania na inne. (I7d4dc, b/470282247) Dodano nową klasę
BackStackMatcher, która przyjmuje 2 parametry: instancję dopasowywania i funkcję lambda konstruktora, która udostępnia wynik dopasowania dopasowywania wejściowego i zwraca stos wsteczny. Po udanym dopasowaniuBackStackMatcherzwracaBackStackMatchResult, który rozszerzaWrappedMatchResulti zawiera oryginalny wynik dopasowania oraz stos wsteczny utworzony za pomocą lambdy.BackStackMatchermożna utworzyć tylko za pomocą nowej funkcji rozszerzeniaDeepLinkMatcher.withBackStack. (Ibf987, b/470282247)Dodaliśmy klasę abstrakcyjną
DeepLinkSerializer, która rozszerza klasęKSerializer, aby kodować i dekodowaćvalue : TjakoString.DeepLinkSerializermożna używać do serializacji argumentów precyzyjnych linków, które nie są typami prostymi. Zgodne zrememberSaveableirememberNavBackStack. (Id3c9f, b/470282247)DeepLinkMatcherdodał drugi parametr typuout R : DeepLinkMatcher.MatchResult<T>, aby deweloperzy mogli uzyskać dostęp do właściwości podklasyMatchResultzwracanej przezDeepLinkMatcher.match()bez rzutowania typu. (I693d3, b/470282247)Górna granica
DeepLinkMatcher.MatchResult'sT została zmieniona zAny?naAny. (I6bf1a)Pole konstruktora
DeepLinkRequesturima teraz domyślnie wartość null. Nazwa konstruktora dodatkowegouriStringzostała zmieniona nauri. (Ia0f14, b/522194187)
Poprawki błędów
ResultEffectużywa terazrememberUpdatedStatedo przechwytywania najnowszej funkcji lambdaonResult. (I7d2a3, b/531709234)- Poprawiono dopasowywanie precyzyjnych linków w przypadku pustych segmentów ścieżki. Jeśli typ argumentu to String, pusta ścieżka będzie traktowana jako wartość pustego ciągu znaków. W przeciwnym razie pusta ścieżka jest traktowana jako brak wartości i przyjmuje wartość domyślną. Jeśli nie ma wartości domyślnej, dopasowanie się nie powiedzie. (I56575, b/535298128)
- Dodaliśmy obsługę pustych wartości zapytań w
DeepLinkRequest.uri. Jeśli argument jest typu String, pusta wartość będzie traktowana jako dosłowny pusty ciąg znaków. W przeciwnym razie pusta wartość jest traktowana jako brak wartości, a dopasowywanie próbuje wrócić do wartości domyślnej. Jeśli nie ma wartości domyślnej, dopasowanie się nie powiedzie. (I30343, b/535127459) EntryProvidernadaje teraz priorytet dopasowywaniu na podstawie kluczowych instancji, a nie kluczowych typów. (Ib5ec9, b/533331924)SceneStateprawidłowo oblicza teraz poprzednie sceny, zaczynając od najwyższej sceny, która nie jest nakładką. (I91915, b/513630541)
Wersja 1.2.0-alpha06
15 lipca 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.2.0-alpha06 Wersja 1.2.0-alpha06 zawiera te zmiany.
Poprawki błędów
- Poprawiliśmy dokumentację
UriDeepLinkMatcherdotyczącą fragmentów URI, aby wyjaśnić, że fragmenty z symbolami wieloznacznymi będą pasować do dowolnych danych wejściowych, ale dane wejściowe nie będą wyodrębniane jako argumenty. (I5ad9b, b/524677091) - Naprawiono problem z nieprawidłowym dopasowywaniem
UriDeepLinkMatcherdo żądania, jeśli wzorzec URI nie zawiera schematu lub nie zaczyna się od podwójnego ukośnika. Na przykładwww.example.com/homebędzie teraz pasować dohttp://www.example.com/home. (Ia6b65, b/522791926)
Wersja 1.2.0-alpha05
1 lipca 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.2.0-alpha05 Wersja 1.2.0-alpha05 zawiera te zmiany.
Nowy interfejs API
- Dodano interfejs API
rememberResultEventBus, który zwraca obiektResultEventBus, który można przekazać do interfejsurememberResultEventBusNavEntryDecorator. Umożliwia to przeniesienieResultEventBuspozaResultEventBusNavEntryDecorator. (Ia655b, b/516995400)
DeepLinkRequest
- Dodano 2 konstruktory zgodne z KMP – jeden przyjmujący DeepLinkUri, a drugi przyjmujący ciąg znaków URI. (I3c088, b/513200887, b/522194187)
- (tylko Android) Dodano konstruktor, który przyjmuje obiekt
Intent. (Ia0498, b/513200887, b/522194187) - Wszystkie konstruktory mają dodatkowe pole
extrasdla parametruMap<String, Any>, aby dołączyć dodatkowe informacje o żądaniu. (If81d5, b/513200887) - Dodano nowy
requestExtrasdsl, który umożliwia bezpieczne typowo tworzenie mapy dodatków. Język DSL udostępnia funkcjęputdo przechowywania parRequestExtrasKeyiAny. Funkcja rozszerzeniaMap<String, Any>.get(key)może służyć do odczytywania z mapy za pomocąRequestExtrasKey(I5091c, b/513200887). - (Tylko Android) Dodano funkcje
ActionExtrasKeyiactionExtra, które umożliwiają tworzenie dodatkowej mapy zActionExtrasKey. (Id0c90, [b/513200887] - Dodano funkcje
MimeTypeExtrasKeyimimeTypeExtra, aby utworzyć mapę dodatków zMimeTypeExtrasKey. (I85131, b/513200887)
DeepLinkMatcher
- Dodano funkcje
DeepLinkMatcher.mimeTypeFilteriDeepLinkMatcher.actionFilter, aby tworzyćDeepLinkMatcher.Filters, które filtrująDeepLinkRequestwedługmimeTypelubaction(tylko na Androidzie). Oba filtry dopasowują ciągi znaków bez rozróżniania wielkości liter. (Ie7e67, b/513191950)
Zmiany w interfejsie API
DeepLinkRequest
- Usuń funkcję fabryczną
fromAction. Aby utworzyć żądanie powiązane z działaniem, użyj nowego polaDeepLinkRequest.extras.(Id0c90, b/513200887) - Usunięto funkcję fabryczną
fromMimeType. Aby utworzyć prośbę powiązaną z mimeType, użyj nowego polaDeepLinkRequest.extras. (I85131, b/513200887) - (tylko Android) Usunięto funkcję fabryczną
fromIntent. Zastąpiony nowym konstruktorem, który przyjmuje intencję i mapę dodatków. (Ia0498, b/513200887, b/522194187) - Usunięto funkcje fabryczne
fromUriifromUriString. Zastąpione przez nowe konstruktory, które przyjmują argumentDeepLinkUrilub ciąg znaków URI. (Id5b6f, b/522194187) DeepLinkMatcheriDeepLinkMatcher.MatchResultoraz ich podklasy przyjmują teraz kowariant T (out T), dzięki czemu klucze hierarchiczne nie będą wymagać rzutowania typu w przypadku używania z obiektami Matcher. (I1e453, b/525094876)- Parametr konstruktora
UriMatchResultdla mapy argumentów ma teraz domyślnie wartość pustej mapy. (I3acdd) DeepLinkMatcher.Filterto teraz interfejs funkcyjny. Pole konstruktorafilterzostało usunięte i zamiast tego powinno być przekazywane bezpośrednio w podklasie. (I9eb7d, b/522194187)
Poprawki błędów
- Naprawiono błąd, który powodował natychmiastowe znikanie wyskakującego wpisu po przejściu do wpisu zawierającego zagnieżdżone metadane z wartościami lambda. (Idb872, b/520494430)
- Naprawiliśmy funkcję
UriDeepLinkMatcher, aby w przypadku braku wymaganych argumentów podczas dopasowywania zwracała wartość nullUriMatchResultzamiast zgłaszać błądMissingFieldException. (I5322f, b/524663005) UriDeeplinkMatcherzawierający adres URI ze schematem https można dopasować tylko do żądań, które również mają schemat https. (Ibfe22, b/522304329)- Popraw
UriDeepLinkMatcher, aby prawidłowo identyfikować schemathttpjako pozytywne dopasowanie dohttpspodczas dopasowywaniaDeepLinkRequestdoUriDeepLinkMatcher. (I3a62b, b/518804264) DeepLinkMatcher.MatchResultcomparator zwraca teraz domyślnie wartość 0, gdy 2 wyniki są równe. (I48ddb, b/518841353)UriDeepLinkMatcherbędzie teraz zwracać wartość nullUriMatchResultzamiast zgłaszać wyjątek, gdy żądanie dopasowania nie powiedzie się z powodu braku wymaganych argumentów. (I669a7, b/470282247, b/512923412)
Wersja 1.2.0-alpha04
3 czerwca 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.2.0-alpha04 Wersja 1.2.0-alpha04 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem z animacją nakładki, który powodował, że zagnieżdżone nakładki, takie jak
ModalBottomSheet, były nieoczekiwanie ponownie animowane, gdy nakładki nad nimi były usuwane. (Ia2b9e, b/502624496)
Wersja 1.2.0-alpha03
19 maja 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.2.0-alpha03 Wersja 1.2.0-alpha03 zawiera te commity.
Nowe funkcje
Nawigacja 3 obsługuje teraz precyzyjne linki z parametrami DeepLinkRequest i DeepLinkMatcher:
DeepLinkRequest– żądany precyzyjny link zawierającyDeepLinkUrii opcjonalny mimeType lub działanie(tylko na Androidzie); Oprócz nowej klasy dostępne są funkcje pomocnicze do tworzenia instancji za pomocąuri,mimeTypelubaction. Platforma Androida ma też narzędzie pomocnicze do tworzenia żądania na podstawie intencji. (Iaaac9, b/470282247)val uriOnlyRequest = DeepLinkRequest.fromUriString("https://sampledeeplink.com/home") val uriAndMimeRequest = DeepLinkRequest.fromUriString( "https://sampledeeplink.com/user/profile?id=123", "image/png" )DeepLinkMatcherto precyzyjny link, który można dopasować doDeepLinkRequest. Każda instancja dopasowywania jest powiązana z kluczem nawigacji, który obsługuje ten precyzyjny link. Klucz nawigacji może być powiązany z wieloma dopasowaniami. WywołanieDeepLinkMatcher.matchzwróciMatchResult, które zawiera powiązany klawisz nawigacyjny, jeśli dopasowanie się powiedzie. Istnieją 2 domyślne implementacjeDeepLinkMatcher:UriDeepLinkMatcherdo dopasowywania precyzyjnych linków na podstawie identyfikatora URI iStaticKeyDeepLinkMatcherdo dopasowywania precyzyjnych linków tylko zDeepLinkMatcher.Filter, które pasują doBoolean. (I3798e, b/470282247)UriDeepLinkMatcheroparta naDeepLinkMatcherimplementacja, która obsługuje precyzyjne linki, dopasowującDeepLinkUrido klucza nawigacji z możliwością serializacji. Obsługuje argumenty precyzyjnych linków typu Primitive lub Collection of primitives, takie jak listy, tablice i zbiory. (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 ?: HomeKeyDodano
DeepLinkUri, czyli wersjęandroid.net.Urina platformę Kotlin Multiplatform (Id4725, b/470282247).
Zmiany w API
- Zaktualizowano do wersji
compileSdk 37, aby była zgodna z wersją compileSdk w Compose
Poprawki błędów
- Poprawiono
AnimatedBottomSheetSampleIllegalArgumentExceptionpodczas wyświetlania wielu nakładek. PróbkaSceneStrategybędzie teraz prawidłowo obliczać ostatni znak inny niżOverlayScenei wyświetlać go we wszystkich scenach nakładki. (If2281, b/506733412) - Zaktualizowano zależność
NavigationEventdo wersji 1.1.1, która usuwa nieaktywny element NavigationEventHandler w trybie inspekcji, aby włączyć predykcyjne cofanie w podglądach Android Studio. (I487fd)
Wersja 1.2.0-alpha02
22 kwietnia 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.2.0-alpha02 Wersja 1.2.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Zmień nazwę
onBacknaonBackCompletedi dodajonBackCancelleddo NavigationBackHandler, aby obsługiwać anulowane gesty powrotu. (I92741) - Dodaj
NavigationBackHandler, aby uprościć obsługę gestów wstecz i przewidywanego przejścia wstecz podczas korzystania zSceneState. Umożliwia to deweloperom łatwiejsze tworzenie niestandardowych komponentów interfejsu, które obsługują standardowe przechodzenie wstecz i gesty predykcyjne bez ręcznego obliczania różnic w stosie wstecznym. (I6a055) - Dodaj
rememberNavigationEventState, aby uprościć połączenieSceneStatez przewidywanym przejściem wstecz. (Iae49c)
Nowe funkcje
- Dodano interfejs API
ResultEventBus, który umożliwia przekazywanie wyników między obiektami NavEntry za pomocą parametruLocalResultEventBusdostarczanego przez nowy interfejsResultEventBusNavEntryDecorator. Wyniki pozytywne można oceniać jako stan z wartościąResultEventBus#conflateAsStatelub jako przepływ wyników z wartościąResultEffect.
Wersja 1.2.0-alpha01
8 kwietnia 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.2.0-alpha01 Wersja 1.2.0-alpha01 zawiera te zmiany.
Poprawki błędów
- Dostęp do
LocalNavAnimatedContentScopezOverlayScenenie będzie już powodowaćIllegalStateException, ponieważOverlayScenesmają terazLocalAnimatedContentScopebez działania. (I2f00c, b/486067688)
Navigation3 w wersji 1.1
Wersja 1.1.7
26 sierpnia 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.7 Wersja 1.1.7 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że gesty powrotu predykcyjnego wywoływane podczas przejścia do przodu nie były animowane w odpowiedzi na postęp przesuwania. Animacja przewidywanego przejścia wstecz będzie teraz działać prawidłowo. (Icdcb0, b/456218398)
Wersja 1.1.6
12 sierpnia 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.6 Wersja 1.1.6 zawiera te zmiany.
Poprawki błędów
NavEntry.contentKeyjest teraz domyślnie kompozycjąkey.toString()ikey::class.toString(). Dzięki temu obiekty danych o tej samej nazwie, ale implementujące różne interfejsy, nie będą już miały tego samegocontentKey. Platforma JSkey::classzwraca jednak tylko prostą nazwę klasy zamiast pełnej i jednoznacznej nazwy, więc w przypadku obiektów danych o zduplikowanych nazwach platforma JS powinna nadal implementować niestandardową funkcjęcontentKey. (I1fbbb, b/512534342)- Naprawiono błąd polegający na tym, że
IllegalArgumentExceptionrzucany przezSaveableStateHolderbył ponownie używany, gdy wiele przejść pop było w trakcie jednocześnie z powodu szybkiego wycofywania z listy wstecznej. (I4d728, b/516312097)
Wersja 1.1.5
29 lipca 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.5 Wersja 1.1.5 zawiera te zmiany.
Poprawki błędów
- Język
entryProviderDSL priorytetowo traktuje terazNavEntryutworzone z instancją klucza, np.entry(key = userKey) { ... }, w stosunku doNavEntryutworzonych z klasą klucza, np.entry<UserKey>{ ... }.(Ib5ec9, b/533331924)
Wersja 1.1.4
1 lipca 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.4 Wersja 1.1.4 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem z natychmiastowym znikaniem wyskakującego wpisu po przejściu do wpisu zawierającego zagnieżdżone metadane z wartościami lambda. (Idb872, b/520494430)
Wersja 1.1.3
17 czerwca 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.3 Wersja 1.1.3 zawiera te zmiany.
Poprawki błędów
Rozwiązaliśmy problem z animacją nakładki, który powodował, że zagnieżdżone nakładki, takie jak
ModalBottomSheet, były nieoczekiwanie ponownie animowane, gdy nakładki nad nimi były usuwane. (Ia2b9e, b/502624496)Zaktualizowano zależność
NavigationEventdo wersji 1.1.2, w której usunięto operacjęNavigationEventHandlerw trybie inspekcji, aby włączyć predykcyjne cofanie w podglądach Android Studio.
Wersja 1.1.2
19 maja 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.2 Wersja 1.1.2 zawiera te zmiany.
Poprawki błędów
- Zaktualizowano zależność
NavigationEventdo wersji 1.1.1, w której usunięto operacjęNavigationEventHandlerw trybie inspekcji, aby włączyć predykcyjne cofanie w podglądach Android Studio.
Wersja 1.1.1
22 kwietnia 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.1 Wersja 1.1.1 zawiera te zmiany.
Poprawki błędów
- Dostęp do
LocalNavAnimatedContentScopezOverlayScenenie będzie już powodowaćIllegalStateException, ponieważOverlayScenesmają terazLocalAnimatedContentScopebez działania. (I2f00c, b/486067688)
Wersja 1.1.0
8 kwietnia 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.0 Wersja 1.1.0 zawiera te zmiany.
Wersja 1.1.0 jest już stabilna.
Ważne zmiany od wersji 1.0.0
Wspólne elementy między scenami
- Navigation3 obsługuje teraz traktowanie scen jako obiektu wspólnego elementu. Oznacza to, że gdy sceny się zmieniają, można zapewnić płynne przejście między nimi. Aby to zrobić, przekaż wartość SharedTransitionScope do parametru NavDisplay lub rememberSceneState.
SceneDecoratorStrategy
– wprowadzenie SceneDecoratorStrategy do obsługi przypadków użycia, takich jak dekorowanie scen za pomocą wspólnych komponentów interfejsu lub udostępnianie stanu między scenami.
NavMetadata DSL
- Navigation3 udostępnia teraz nowy, bezpieczny pod względem typów język DSL metadanych. DSL korzysta z nowego interfejsu MetadataKey, który umożliwia określanie typów kluczy i wartości, które mają być przekazywane do mapy metadanych. Dodaliśmy też nowe NavMetadataKeys dla przejść NavDisplay, aby można było ich używać z nowym DSL metadanych do dodawania przejść do NavDisplay.
Animacje OverlayScene
- Interfejs OverlayScene ma nowe wywołanie zwrotne zawieszania onRemoved. To wywołanie zwrotne jest wywoływane po usunięciu z listy wstecznej klucza powiązanego ze sceną, ale zanim opuści on kompozycję. Dzięki temu animacje wyjścia wywoływane w onRemoved mogą się zakończyć, zanim scena nakładki zostanie usunięta z kompozycji.
Inne zmiany:
- NavDisplay i rememberSceneState przyjmują teraz parametr List<SceneStrategy> zamiast pojedynczego parametru SceneStrategy, który był połączony z przyrostkiem then.
– Możesz teraz dynamicznie dodawać metadane z uwzględnieniem klucza dostępu za pomocą EntryProvider DSL.
Wersja 1.1.0-rc01
25 marca 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zmiany.
Poprawki błędów
NavDisplayzapewnia teraz, że w przypadku wpisów wyświetlanych pod nakładkami wartośćLifecyclejest ograniczona doSTARTED. Dzięki temu interfejsy API, takie jakdropUnlessResumed, będą nadal działać podczas korzystania z okien dialogowych. (If209f, b/483966071)- Rozwiązaliśmy problem w
NavDisplay, który powodował, że przechodzenie tam i z powrotem między tymi samymi ekranami i przerywanie animacji między nimi mogło powodować nieprawidłową kolejność ekranów. (I4d491, b/459419800)
Wersja 1.1.0-beta01
11 marca 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.0-beta01 Wersja 1.1.0-beta01 zawiera te zmiany.
Wersja 1.1.0-alpha05
25 lutego 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.0-alpha05 Wersja 1.1.0-alpha05 zawiera te zmiany.
Zmiany w interfejsie API
- Funkcje
NavDisplayirememberSceneStateprzyjmują teraz parametrList<SceneStrategy>zamiast pojedynczego parametruSceneStrategy, który był łączony za pomocą infiksuthen. Jest to bardziej zgodne zList<SceneDecoratorStrategy<T>>, które są już pobierane przez oba te interfejsy API. Poprzednie interfejsy API zostały wycofane. (I78b2c, b/482108465) - Dodano operatora #contains metadanych, aby sprawdzić, czy mapa metadanych zawiera podany
NavMetadataKey. (Ic30db, b/485311895) - Dodano
NavMetadataKeyDialogKeydlaDialogSceneStrategydo użycia z DSL metadanych. (Ic7a26, b/483388817)
Wersja 1.1.0-alpha04
11 lutego 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.0-alpha04 Wersja 1.1.0-alpha04 zawiera te zmiany.
Nowe funkcje
- Navigation3 udostępnia teraz nowy, bezpieczny pod względem typów język DSL metadanych. DSL korzysta z nowego interfejsu
MetadataKey, który umożliwia określanie typów kluczy i wartości, które mają być przekazywane do mapy metadanych. Dodaliśmy też noweNavMetadataKeydla przejśćNavDisplay, aby można było ich używać z nowym DSLmetadatado dodawania przejść doNavDisplay. (Ic10ef, Ic049c,b/476213928)
Zmiany w interfejsie API
- Interfejs
OverlayScenema nową funkcję wywołania zwrotnegoonRemovedzawieszania. To wywołanie zwrotne jest wywoływane po usunięciu z listy wstecznej klucza powiązanego ze sceną, ale zanim opuści on kompozycję. Dzięki temu animacje wyjścia wywoływane wonRemovedmogą się zakończyć, zanim scena nakładki zostanie usunięta z kompozycji. (I29a72, b/440558061) SceneStrategywydzieliła funkcję dekoracji do nowej funkcjiSceneDecoratorStrategy. Ten nowy interfejs służy do dekorowania scen. Dostępne są nowe interfejsy API dlaNavDisplayirememberSceneState, które umożliwiają dodawanieSceneDecoratorStrategies. (If9385, b/477669607, b/477670333)
Poprawki błędów
- Naprawiono błąd, który powodował awarię, gdy do funkcji
NavDisplaylubrememberSceneStateprzekazywano wartośćSharedTransitionLayouti używano dowolnego elementuOverlayScene. Wynikało to z tego, że używanie elementuSharedTransitionLayoutdziała tylko z elementamiNavEntries, które są renderowane jako część elementuAnimatedContent, a elementyOverlayScenesą renderowane w osobnych oknach. (I1bb76, b/478664101)
Aktualizacja zależności
- Od wersji
Navigation31.0.1:Navigation3zależy teraz odNavigationEvent1.0.2. Rozwiązuje to problemIllegalStateExceptionspowodowany użyciemNavDisplaypodczasAndroidStudiowersji przedpremierowych. (Id7212, b/477149762)
Wersja 1.1.0-alpha03
28 stycznia 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.0-alpha03 Wersja 1.1.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Możesz teraz dynamicznie dodawać metadane z uwzględnieniem klucza wpisu za pomocą
EntryProviderDSL. (I942fb, b/474416976)
Wersja 1.1.0-alpha02
14 stycznia 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.1.0-alpha02 Wersja 1.1.0-alpha02 zawiera te zmiany.
Nowe funkcje
SceneStrategyobsługuje teraz zagnieżdżanie scen za pomocą nowej funkcjicalculatedScene(Scene). Oznacza to, żeSceneStrategymożna dostosować, aby zapewnić dodatkowe funkcje w innych scenach. (I5df7c,b/440333896)
Wersja 1.1.0-alpha01
3 grudnia 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.
Zmiany w interfejsie API
Navigation3obsługuje teraz traktowanie scen jako obiektu elementu udostępnionego. Oznacza to, że gdy sceny się zmieniają, można zapewnić płynne przejście między nimi. Aby to zrobić, przekaż wartośćSharedTransitionScopedo parametruNavDisplaylubrememberSceneState. (I15868)
Wersja 1.0
Wersja 1.0.1
11 lutego 2026 r.
Publikacja androidx.navigation3:navigation3-*:1.0.1 Wersja 1.0.1 zawiera te zmiany.
Aktualizacja zależności
Navigation3zależy teraz odNavigationEventw wersji 1.0.2. Rozwiązuje to problemIllegalStateExceptionspowodowany użyciemNavDisplaypodczasAndroidStudiowersji przedpremierowych. (Id7212, b/477149762)
Wersja 1.0.0
19 listopada 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0 Wersja 1.0.0 zawiera te zmiany.
Przedstawiamy Navigation3!
- Biblioteka Navigation3 jest już stabilna. Navigation3 to pierwsze podejście do nawigacji w AndroidzieX Compose.
- Więcej informacji znajdziesz w poście na blogu, na stronie z zasobami oraz w przepisach.
Wersja 1.0.0-rc01
5 listopada 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0-rc01 Wersja 1.0.0-rc01 zawiera te zmiany.
Poprawki błędów
NavDisplayustawia terazLocalLifecycleOwnerna poziomieScene, co pozwala autorom scen określić, czy wszystkie przejścia zostały zakończone, sprawdzając, czy wartośćLifecycle.StatetoRESUMED. DziałanieLocalLifecycleOwnerna poziomieNavEntrypozostaje bez zmian: jest ono również ograniczone doSTARTED, jeśli trwa przejście, a dodatkowo doCREATED, jeśli tenNavEntryzostał usunięty z listy wstecznej i jest w trakcie animacji wyjścia. (I03113, b/454045829)
Wersja 1.0.0-beta01
22 października 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
SceneStrategyScopema teraz tylko publiczny konstruktor bez argumentów, który umożliwia testowanieSceneStrategyi zwróconegoScenew izolacji. W bardziej złożonych przypadkach użycia użyjrememberSceneState(). (I8440c, b/451679047)
Poprawki błędów
- Rozwiązaliśmy problem z nieskończoną pętlą podczas łączenia
SceneStrategyzthen. (Iba3f0, b/450323470) - Rozwiązaliśmy problem z migotaniem ekranu podczas zamiany
backStackprzekazywanego doNavDisplayi używania animacji. (Ief7b5, b/450967248)
Wersja 1.0.0-alpha11
8 października 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0-alpha11 Wersja 1.0.0-alpha11 zawiera te zmiany.
Zmiany w interfejsie API
- Metoda
calculateScenew usłudzeSceneStrategynie jest już@Composable. Zamiast tego rozważ przeniesienie tej pracy do konstrukcji metodySceneStrategy(czyli w metodzierememberMySceneStrategy()), która w pełni umożliwia określenie czasu życia dowolnych wartościrememberSaveablelub kluczowych instrukcjirememberna podstawie prawidłowych wartości. (If1733, b/448709506) - Parametr
onBackdlaSceneStrategy.calculateScenezostał przeniesiony do nowego zakresu odbiornikaSceneStrategyScope, aby wyraźniej wskazać, że jest to parametr opcjonalny, i zapewnić punkt rozszerzenia dla przyszłych funkcji Navigation3. (I3aea3, b/448460407) - Funkcja
onBacklambda przekazywana do funkcjiNavDisplayi do funkcjiSceneStrategynie udostępnia już parametrucount: Int, który wskazuje, kiedy należy usunąć wiele wpisów. Zamiast tego funkcja() -> Unitlambda będzie teraz wywoływana kilka razy z rzędu w rzadkich przypadkach, gdy żądania sceny powodują pojawienie się wielu wpisów. (Idedb5, b/446989346) - Usuń klasę
NavEntryWrapperi zastąp jej funkcjonalność ostateczną klasąNavEntryz nowym konstruktorem dodatkowym, który przyjmuje klasęNavEntryz nową treścią. Umożliwi to dalsze dodawanie nowych treści do wpisu. (I7da2a, b/444447130) - Funkcja
navEntryDecorator, która tworzy i zwracaNavEntryDecorator, została usunięta i zastąpiona klasąNavEntryDecorator, która jest teraz publiczna i można ją rozszerzać. (If81f8, b/444447434, b/447381176) - Nazwa
SavedStateNavEntryDecoratorzostała zmieniona naSaveableStateHolderNavEntryDecorator, ponieważ dekoruje wpisy symbolemSaveableStateHolder. Dekorator został też przekształcony z funkcji w klasę, ponieważ jest funkcjonalnie fabryką dlaNavEntryDecorator. (Ie6013, b/447381176) - W przypadku niestandardowych wyświetleń, w których zamiast
NavDisplayużywa sięSceneState, nie trzeba już używać lokalizacjiLocalEntriesToRenderInCurrentScene, która jest teraz wewnętrzna. (Ic40ef, b/414668196) - Usunęliśmy interfejsy
SceneSetupNavEntryDecoratorirememberSceneSetupNavEntryDecorator()z publicznego interfejsu API. Ta funkcja jest teraz domyślnie włączona i nie musisz jej ręcznie dodawać. (Ieae42, b/444479133) NavEntry,DialogScene,SinglePaneSceneiSceneStateimplementują teraz metodę equals. (I96121)- Interfejs sceny ma nowe pole metadanych, które umożliwia dołączanie metadanych specyficznych dla sceny w przypadku NavDisplay. Umożliwia to scenie zastąpienie metadanych na
NavDisplay, np. za pomocą przejść. (I1fd96, b/443955625) - Uprość sygnaturę
rememberNavBackStack, usuwając zbędny parametr typu ogólnego. Funkcja akceptuje teraz wartośćvararg elements: NavKey. (I03e45) - Domyślne animacje dla
NavDisplaysą teraz częścią wspólnego interfejsu API, co umożliwia ich wywoływanie ze wszystkich platform. (I71af9, b/447147159) - Zmień nazwę
EntryProviderBuildernaEntryProviderScope, aby odzwierciedlała fakt, że klasa jest DSL-em Kotlin, który zapewnia zakres do tworzeniaNavEntries. (Ia7465)
Poprawki błędów
rememberNavBackStack()wymusza teraz serializację polimorficzną w przypadku NavKey i wymaga niestandardowegoSavedStateConfigurationskonfigurowanego tak, aby zapewnić prawidłowe przywracanie stanu. Zaktualizowaliśmy dokumentację KDoc, aby odzwierciedlała wymaganie, że wszystkie podtypy NavKey muszą być zarejestrowane w dostarczonym module SerializersModule. (I6de37,I782f2, b/446664383)
Wersja 1.0.0-alpha10
24 września 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaj nowy przeciążony operator
NavDisplay, który przyjmuje listę elementówNavEntry<T>ozdobioną przezrememberDecoratedNavEntries. (I4025b, b/441940314) - Przeniesiono
DialogScenedo nowego pakietu. (Ia5840) - Usuń publiczny interfejs API
DecorateNavEntry. Zamiast tego użyjrememberDecoratedNavEntries, aby otoczyć element NavEntry listą dekoratorów. (Id8c09) - Interfejs Navigation3 udostępnia teraz nowe domyślne właściwości
transitionSpec. (Ibcabd) - Dodano nowy obiekt
SceneState, który ułatwia zarządzanie scenami. Zapewnia to również nowe przeciążenieNavDisplay, które zabieraSceneStateiNavigationEventState. (Idfb46, b/444479133) NavDisplayumożliwia teraz dostosowywanie przejść na podstawie tego, do jakiegoSceneprzechodzisz i z jakiego wychodzisz, poprzez sprawdzanieTransitioncurrentStateitargetState. (I906cc, b/443872322)NavigationEventInfoma teraz rolęabstract classzamiastinterface. Zaktualizuj wszystkie niestandardowe implementacje, aby dziedziczyły z klasy (np.data class MyInfo : NavigationEventInfo()). (I1e59c, b/444734264)- Zaktualizowano interfejsy API modułu obsługi
navigationevent-compose.NavigationEventHandleriNavigationBackHandler(oraz ich warianty) obsługują teraz nowe przeciążenie, które akceptuje podniesioneNavigationEventStates. Proste przeciążenia (przyjmującecurrentInfo) są zachowywane i teraz wewnętrznie korzystają z tego nowego modelu stanu. (Ic3251, b/444734264) - Wszystkie interfejsy API sceny zostały przeniesione z navigation3-ui do navigation3-runtime. Oznacza to, że są one teraz dostępne na wszystkich platformach obsługiwanych przez navigation3-runtime. (I431d0, b/444449993)
- Dodano nowy przeciążony operator
rememberDecoratedNavEntries, który przyjmuje listę elementówNavEntrydo dekoracji. Pola wejściowe mogą być już ozdobione innymi dekoratorami. (I5a034, b/444230270) - Usunięto parametry typu wieloznacznego navigation3 (I02540)
- Ulepszyliśmy obsługę typów ogólnych w języku
entryProviderDSL. Jeśli wcześniej importowanoandroidx.navigation3.runtime.entry, nie jest to już wymagane. (I299fc) - Ograniczanie przepełnienia
NavBackStackSerializeropartego na odbiciu do Androida. Zapobiega to niejawnej serializacji w czasie działania na platformach innych niż Android, wymuszając użycie jawnego przeciążeniaSavedStateConfigurationw kodzie wieloplatformowym. (I73313, b/420443609) - Zmień
swipeEdgewNavigationEventna@IntDef(Icee54, b/443950342) - Ogranicz serializację
NavBackStackdo Androida. Zapobiega to błędom w czasie działania na platformach innych niż Android. W przypadku zapisywania stanu na wielu platformach użyj przeciążeniarememberNavBackStackz wyraźnym parametremSavedStateConfiguration. (I1e418, b/420443609)
Poprawki błędów
- Naprawiono awarię podczas przewidywanego przejścia wstecz, gdy zagnieżdżony element
NavDisplayma jeden wpis podrzędny. (I2cdc0, b/441933162)
Wersja 1.0.0-alpha09
10 września 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zmiany.
Zmiany w interfejsie API
- Funkcja
DecoratedNavEntryProviderzostała zastąpiona funkcjąrememberDecoratedNavEntries, która tworzy i zwraca obiekty NavEntry ozdobione listą podanych dekoratorów (I0fe1c, b/441328236). NavBackStackjest teraz typem ogólnym dla typuNavKey. Umożliwia to aplikacjom i bibliotekom definiowanie niestandardowych typów kluczy dla ich stosów wstecznych, zamiast ograniczać się doNavKey. (I4d190,Iad2f4, b/420443609)NavBackStackto teraz@kotlinx.serialization.Serializable, co umożliwia zapisywanie i przywracanie stanu nawigacji w przypadku śmierci procesu i zmian konfiguracji bez dodatkowego kodu. (I2c3cf, b/420443609)RememberNavBackStackzostało przeniesione docommonMain, aby było dostępne na wszystkich platformach docelowych. (Id69e7, b/420443609)
Poprawki błędów
NavDisplayteraz prawidłowo przenosi poszczególneNavEntrydo odpowiednichLifecycle.State. (I30aac, b/440145700)- Rozwiązaliśmy problem polegający na tym, że funkcja
NavDisplayignorowała wszystkie zagnieżdżone elementyNavigationEventDispatcherOwnerustawione za pomocą bibliotekiNavigationEventLocalNavigationEventDispatcherOwner. (I6224a)
Zmiany zależności
- Biblioteka Navigation3 zależy teraz od NavigationEvent Alpha08.
Wersja 1.0.0-alpha08
27 sierpnia 2025 roku
Publikacja androidx.navigation3:navigation3-*:1.0.0-alpha08 Wersja 1.0.0-alpha08 zawiera te zmiany.
Nowe funkcje
- Dodano nowe platformy Kotlin Multiplatform (KMP) do artefaktów
Navigation3 Runtime.Navigation3 Runtimeobsługuje obecnie te platformy: JVM (Android i komputery), Native (Linux, iOS, watchOS, macOS, MinGW) i Web (JavaScript, WasmJS). (I55078, b/424410398, b/419294028, b/419046226). Uwaga: nie podaje to docelowych wartości KMP dla artefaktuNavigation3 UI. Na innych platformach musisz wdrożyć własną niestandardową funkcjęNavDisplay. Jeśli chcesz, aby ta funkcja była obsługiwana, zagłosuj na problem w Jetbrains tutaj i śledź postępy. - Obiekt
NavDisplayInfojest teraz publiczny i można go używać do pobierania listy widocznych wpisów zNavDisplay. (Ibc91f)
Zmiany w interfejsie API
- Dodaliśmy nowy element
NavBackStackSerializer, który będzie używany w połączeniu z elementemrememberNavBackStackdo przywracania stanu.rememberNavBackStack()przyjmuje teraz teżSavedStateConfiguration, którego możesz użyć do podania własnej konfiguracji. (I2f4d2, I4cd58, b/420443609)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że podczas nawigacji wywoływane były nieprawidłowe zdarzenia cyklu życia. (I8bf6d, b/425901162, b/434109022)
Znane problemy
- W wyniku błędu wprowadzonego przez zmianę I8bf6d cykle życia były oparte na scenach zamiast na poszczególnych wpisach, co powodowało, że w przypadku, gdy
keyprzekazywane doNavEntrynie byłoStringlub gdyNavEntrynie zastąpiłocontentKeyi nie ustawiło go nakey(pamiętaj, że w takim przypadku klucz można zapisać wBundle), cykl życia nie działał. Błąd został naprawiony w kolejnej wersji. (b/440145700)
Wersja 1.0.0-alpha07
13 sierpnia 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0-alpha07 Wersja 1.0.0-alpha07 zawiera te zmiany.
Aktualizacja MinSdk
- Domyślny minSdk dla AndroidX został przeniesiony z API 21 na API 23 (Ibdfca, b/380448311, b/435705964, b/435705223).
Zmiany w interfejsie API
SavedStateNavEntryDecoratorużywa terazSaveableStateRegistrywbudowanego wSaveableStateProviderdo zapisywania i przywracania stanów. (If8d9a)predictivePopTransitionSpecjest teraz przekazywany jako parametr krawędzi przesunięcia, co pozwala dostosować przejście w zależności od tego, od której krawędzi użytkownik rozpoczął gest przewidywania powrotu. (I753a8)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że sceny niestandardowe były nieskończenie przeliczane, ponieważ nie była zapamiętywana ostatnia scena. (I7ba84, b/418153031)
Aktualizacja zależności
- Interfejs Navigation3 zależy teraz od zdarzenia nawigacji
1.0.0-alpha06.
Wersja 1.0.0-alpha06
30 lipca 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0-alpha06 Wersja 1.0.0-alpha06 zawiera te zmiany.
Aktualizacja zależności
- Biblioteka Navigation3 zależy teraz od zdarzenia nawigacji
1.0.0-alpha05.
Wersja 1.0.0-alpha05
2 lipca 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0-alpha05 Wersja 1.0.0-alpha05 zawiera te zmiany.
Zmiany w zachowaniu
- Stan
NavEntryjest teraz ściśle oparty na bieżącej liście dekoratorów przekazywanych doNavDisplay. Oznacza to, że w przypadku wielu stosów wstecznych dekoratory powinny być zamieniane w stosach wstecznych, aby zachować stan obiektów NavEntry w stosie wstecznym. W przeciwnym razie stany zostaną wyczyszczone tak, jakby wpisy zostały usunięte (zamiast zamienione). (I7a759, b/428033667)
Wersja 1.0.0-alpha04
18 czerwca 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0-alpha04 Wersja 1.0.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
NavEntry.contentjest teraz prywatny. Aby wywołaćNavEntrytreści, wywołaj nowy interfejsNavEntry.Content()API, który nie wymaga już parametrukey. (Icd0fd, b/420991203)- Pole
NavEntry.keyjest teraz prywatne.NavEntryi jego odpowiednie stany powinny być identyfikowane przez nowe polecontentKey, które jest generowane przez nową funkcję lambdacontentKeyFactoryi domyślnie przyjmuje wartość skrótu, który można zapisać i który jest generowany na podstawie parametruNavEntry.key(I81a6c, b/422001357, b/420991203 I2d7d4, b/420991203, b/422841812).
Zmiany zależności
- Biblioteka Navigation3 zależy teraz od nowego artefaktu
androidx.navigationevent.compose.
Wersja 1.0.0-alpha03
4 czerwca 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zmiany.
Poprawki błędów
Navigation3nie będzie już czyścić stanów dekoratora dlabackStacks, które zostały zamienione i zastąpione inną instancjąbackStack. (I28a42, b/415076044)
Wersja 1.0.0-alpha02
23 maja 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zmiany.
Poprawki błędów
- Rozwiązanie problemu z funkcją
SavedStateNavEntryDecorator, który powodował kolizje różnych klas danych o tych samych wartościach właściwości. (b/418070648, Iff4775) - Rozwiązaliśmy problem z brakującą klasą, który powodował awarie podczas uruchamiania bez deklarowania jawnych zależności. (b/419049149, I4b4ed)
Wersja 1.0.0-alpha01
20 maja 2025 r.
Publikacja androidx.navigation3:navigation3-*:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zmiany.
Nowe funkcje
Navigation3 to nowa biblioteka nawigacji stworzona specjalnie do obsługi nawigacji w aplikacji Jetpack Compose. Artefakt androidx.navigation3.runtime zapewnia elementy składowe, a artefakt androidx.navigation3.ui – warstwę interfejsu użytkownika za pomocą interfejsu NavDisplay API. Deweloperzy mogą przekazywać własny stan bezpośrednio do funkcji typu „composable” NavDisplay, która zmienia treść w zależności od zmian w stanie dewelopera.
@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 */ }
})
Więcej informacji znajdziesz w przewodniku po Navigation3.