navigation3

  
Navigation 3 to nowa biblioteka nawigacji zaprojektowana do współpracy z Compose.
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.

Tworzenie nowego problemu

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ą do DeferredAnimatedContent i rozwiązując problemy z przekazywaniem przejść. I145eaedd b/430807423

Brak informacji o wersji tego artefaktu.

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 NavEntries za pomocą ResultEventBus udostępnianego przez LocalResultEventBus i ResultEventBusNavEntryDecorator.
  • Dodaliśmy rememberResultEventBus, aby umożliwić przenoszenie elementu ResultEventBus poza element ResultEventBusNavEntryDecorator i przekazywanie go do elementu rememberResultEventBusNavEntryDecorator.
  • Przekazane wyniki są dostępne jako stan z użyciem ResultEventBus#conflateAsState lub zbierane jako strumień wyników z użyciem ResultEffect.

Deep Link API

Navigation3 obsługuje teraz precyzyjne linki Kotlin Multiplatform (KMP) w androidx.navigation3.runtime.deeplink za pomocą DeepLinkRequest, DeepLinkUri i DeepLinkMatcher.

  • DeepLinkRequest i RequestExtras: reprezentują żądanie precyzyjnego linku utworzone na podstawie DeepLinkUri, ciągu znaków URI lub Intent na Androidzie. Dodatkowe metadane żądania można dołączyć za pomocą bezpiecznego pod względem typów kontenera RequestExtras utworzonego za pomocą requestExtras DSL i RequestExtrasKey<T>.
  • DeepLinkMatcher: reprezentuje precyzyjny link, który można dopasować do DeepLinkRequest. 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łanie DeepLinkMatcher.match zwróci MatchResult, który zawiera powiązany klawisz nawigacyjny, jeśli dopasowanie się powiedzie. Dostępne są 2 domyślne implementacje DeepLinkMatcher: UriDeepLinkMatcher do dopasowywania precyzyjnych linków na podstawie Uri i StaticKeyDeepLinkMatcher do dopasowywania precyzyjnych linków tylko z DeepLinkMatcher.Filter, które pasują do wartości logicznej.
  • BackStackMatcher: DeepLinkMatcher do utworzenia syntetycznego stosu wstecznego po znalezieniu pasującego precyzyjnego linku. BackStackMatcher można utworzyć za pomocą funkcji rozszerzenia DeepLinkMatcher.withBackStack.

Przewidywane przejście wstecz

  • Dodano NavigationBackHandler i rememberNavigationEventState, aby uprościć łączenie SceneState z obsługą przewidywanego przejścia wstecz (onBackCompleted i onBackCancelled). 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.contentKey domyślnie jest teraz połączeniem key.toString() i key::class.toString(), co zapobiega kolizjom kluczy między kluczami data object, które mają tę samą prostą nazwę w różnych interfejsach.
  • EntryProvider nadaje teraz priorytet dopasowywaniu na podstawie kluczowych instancji, a nie kluczowych typów.
  • Dodano sprawdzanie kodu, aby upewnić się, że implementacje Scene są albo data classes, albo implementują equals i hashCode.

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.extras z Map<String, Any> na nową klasę RequestExtras, która przechowuje pary RequestExtrasKey<T> i T. RequestExtras można utworzyć za pomocą języka DSL requestExtras. (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 Scene są klasami danych lub implementują metody equals i hashCode, co zapewnia używanie tego samego Scene w odpowiednich przypadkach. (Ibdf0d, b/542316099)
  • NavEntry.contentKey jest teraz domyślnie kompozycją key.toString() i key::class.toString(). Dzięki temu obiekty danych o tej samej nazwie, ale implementujące różne interfejsy, nie będą już miały tego samego contentKey. Platforma JS key::class zwraca 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 IllegalArgumentException zgłaszany przez SaveableStateProvider w 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 dopasowaniu BackStackMatcher zwraca BackStackMatchResult, który rozszerza WrappedMatchResult i zawiera oryginalny wynik dopasowania oraz stos wsteczny utworzony za pomocą lambdy. BackStackMatcher można utworzyć tylko za pomocą nowej funkcji rozszerzenia DeepLinkMatcher.withBackStack. (Ibf987, b/470282247)

  • Dodaliśmy klasę abstrakcyjną DeepLinkSerializer, która rozszerza klasę KSerializer, aby kodować i dekodować value : T jako String. DeepLinkSerializer można używać do serializacji argumentów precyzyjnych linków, które nie są typami prostymi. Zgodne z rememberSaveable i rememberNavBackStack. (Id3c9f, b/470282247)

  • DeepLinkMatcher dodał drugi parametr typu out R : DeepLinkMatcher.MatchResult<T>, aby deweloperzy mogli uzyskać dostęp do właściwości podklasy MatchResult zwracanej przez DeepLinkMatcher.match() bez rzutowania typu. (I693d3, b/470282247)

  • Górna granica DeepLinkMatcher.MatchResult's T została zmieniona z Any? na Any. (I6bf1a)

  • Pole konstruktora DeepLinkRequest uri ma teraz domyślnie wartość null. Nazwa konstruktora dodatkowego uriString została zmieniona na uri. (Ia0f14, b/522194187)

Poprawki błędów

  • ResultEffect używa teraz rememberUpdatedState do przechwytywania najnowszej funkcji lambda onResult. (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)
  • EntryProvider nadaje teraz priorytet dopasowywaniu na podstawie kluczowych instancji, a nie kluczowych typów. (Ib5ec9, b/533331924)
  • SceneState prawidł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ę UriDeepLinkMatcher dotyczą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 UriDeepLinkMatcher do żądania, jeśli wzorzec URI nie zawiera schematu lub nie zaczyna się od podwójnego ukośnika. Na przykład www.example.com/home będzie teraz pasować do http://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 obiekt ResultEventBus, który można przekazać do interfejsu rememberResultEventBusNavEntryDecorator. Umożliwia to przeniesienie ResultEventBus poza ResultEventBusNavEntryDecorator. (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 extras dla parametru Map<String, Any>, aby dołączyć dodatkowe informacje o żądaniu. (If81d5, b/513200887)
  • Dodano nowy requestExtras dsl, który umożliwia bezpieczne typowo tworzenie mapy dodatków. Język DSL udostępnia funkcję put do przechowywania par RequestExtrasKey i Any. Funkcja rozszerzenia Map<String, Any>.get(key) może służyć do odczytywania z mapy za pomocą RequestExtrasKey(I5091c, b/513200887).
  • (Tylko Android) Dodano funkcje ActionExtrasKey i actionExtra, które umożliwiają tworzenie dodatkowej mapy z ActionExtrasKey. (Id0c90, [b/513200887]
  • Dodano funkcje MimeTypeExtrasKey i mimeTypeExtra, aby utworzyć mapę dodatków z MimeTypeExtrasKey. (I85131, b/513200887)

DeepLinkMatcher

  • Dodano funkcje DeepLinkMatcher.mimeTypeFilter i DeepLinkMatcher.actionFilter, aby tworzyć DeepLinkMatcher.Filters, które filtrują DeepLinkRequest według mimeType lub action (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 pola DeepLinkRequest.extras.(Id0c90, b/513200887)
  • Usunięto funkcję fabryczną fromMimeType. Aby utworzyć prośbę powiązaną z mimeType, użyj nowego pola DeepLinkRequest.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 fromUri i fromUriString. Zastąpione przez nowe konstruktory, które przyjmują argument DeepLinkUri lub ciąg znaków URI. (Id5b6f, b/522194187)
  • DeepLinkMatcher i DeepLinkMatcher.MatchResult oraz 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 UriMatchResult dla mapy argumentów ma teraz domyślnie wartość pustej mapy. (I3acdd)
  • DeepLinkMatcher.Filter to teraz interfejs funkcyjny. Pole konstruktora filter został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ść null UriMatchResult zamiast zgłaszać błąd MissingFieldException. (I5322f, b/524663005)
  • UriDeeplinkMatcher zawierają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ć schemat http jako pozytywne dopasowanie do https podczas dopasowywania DeepLinkRequest do UriDeepLinkMatcher. (I3a62b, b/518804264)
  • DeepLinkMatcher.MatchResult comparator zwraca teraz domyślnie wartość 0, gdy 2 wyniki są równe. (I48ddb, b/518841353)
  • UriDeepLinkMatcher będzie teraz zwracać wartość null UriMatchResult zamiast 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ący DeepLinkUri i opcjonalny mimeType lub działanie(tylko na Androidzie); Oprócz nowej klasy dostępne są funkcje pomocnicze do tworzenia instancji za pomocą uri, mimeType lub action. 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"
    )
    
  • DeepLinkMatcher to precyzyjny link, który można dopasować do DeepLinkRequest. 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łanie DeepLinkMatcher.match zwróci MatchResult, które zawiera powiązany klawisz nawigacyjny, jeśli dopasowanie się powiedzie. Istnieją 2 domyślne implementacje DeepLinkMatcher: UriDeepLinkMatcher do dopasowywania precyzyjnych linków na podstawie identyfikatora URI i StaticKeyDeepLinkMatcher do dopasowywania precyzyjnych linków tylko z DeepLinkMatcher.Filter, które pasują do Boolean. (I3798e, b/470282247)

  • UriDeepLinkMatcher oparta na DeepLinkMatcher implementacja, która obsługuje precyzyjne linki, dopasowując DeepLinkUri do 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 ?: HomeKey
    
  • Dodano DeepLinkUri, czyli wersję android.net.Uri na 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 AnimatedBottomSheetSample IllegalArgumentException podczas wyświetlania wielu nakładek. Próbka SceneStrategy będzie teraz prawidłowo obliczać ostatni znak inny niż OverlayScene i wyświetlać go we wszystkich scenach nakładki. (If2281, b/506733412)
  • Zaktualizowano zależność NavigationEvent do 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ę onBack na onBackCompleted i dodaj onBackCancelled do 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 z SceneState. 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łączenie SceneState z przewidywanym przejściem wstecz. (Iae49c)

Nowe funkcje

  • Dodano interfejs API ResultEventBus, który umożliwia przekazywanie wyników między obiektami NavEntry za pomocą parametru LocalResultEventBus dostarczanego przez nowy interfejs ResultEventBusNavEntryDecorator. Wyniki pozytywne można oceniać jako stan z wartością ResultEventBus#conflateAsState lub 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 LocalNavAnimatedContentScope z OverlayScene nie będzie już powodować IllegalStateException, ponieważ OverlayScenes mają teraz LocalAnimatedContentScope bez działania. (I2f00c, b/486067688)

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.contentKey jest teraz domyślnie kompozycją key.toString() i key::class.toString(). Dzięki temu obiekty danych o tej samej nazwie, ale implementujące różne interfejsy, nie będą już miały tego samego contentKey. Platforma JS key::class zwraca 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 IllegalArgumentException rzucany przez SaveableStateHolder był 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 entryProvider DSL priorytetowo traktuje teraz NavEntry utworzone z instancją klucza, np. entry(key = userKey) { ... }, w stosunku do NavEntry utworzonych 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ść NavigationEvent do wersji 1.1.2, w której usunięto operację NavigationEventHandler w 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ść NavigationEvent do wersji 1.1.1, w której usunięto operację NavigationEventHandler w 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 LocalNavAnimatedContentScope z OverlayScene nie będzie już powodować IllegalStateException, ponieważ OverlayScenes mają teraz LocalAnimatedContentScope bez 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

  • NavDisplay zapewnia teraz, że w przypadku wpisów wyświetlanych pod nakładkami wartość Lifecycle jest ograniczona do STARTED. Dzięki temu interfejsy API, takie jak dropUnlessResumed, 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 NavDisplay i rememberSceneState przyjmują teraz parametr List<SceneStrategy> zamiast pojedynczego parametru SceneStrategy, który był łączony za pomocą infiksu then. Jest to bardziej zgodne z List<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 NavMetadataKey DialogKey dla DialogSceneStrategy do 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ż nowe NavMetadataKey dla przejść NavDisplay, aby można było ich używać z nowym DSL metadata do dodawania przejść do NavDisplay. (Ic10ef, Ic049c,b/476213928)

Zmiany w interfejsie API

  • Interfejs OverlayScene ma nową funkcję wywołania zwrotnego onRemoved zawieszania. 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. (I29a72, b/440558061)
  • SceneStrategy wydzieliła funkcję dekoracji do nowej funkcji SceneDecoratorStrategy. Ten nowy interfejs służy do dekorowania scen. Dostępne są nowe interfejsy API dla NavDisplay i rememberSceneState, które umożliwiają dodawanie SceneDecoratorStrategies. (If9385, b/477669607, b/477670333)

Poprawki błędów

  • Naprawiono błąd, który powodował awarię, gdy do funkcji NavDisplay lub rememberSceneState przekazywano wartość SharedTransitionLayout i używano dowolnego elementu OverlayScene. Wynikało to z tego, że używanie elementu SharedTransitionLayout działa tylko z elementami NavEntries, które są renderowane jako część elementu AnimatedContent, a elementy OverlayScene są renderowane w osobnych oknach. (I1bb76, b/478664101)

Aktualizacja zależności

  • Od wersji Navigation3 1.0.1: Navigation3 zależy teraz od NavigationEvent 1.0.2. Rozwiązuje to problem IllegalStateException spowodowany użyciem NavDisplay podczas AndroidStudio wersji 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ą EntryProvider DSL. (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

  • SceneStrategy obsługuje teraz zagnieżdżanie scen za pomocą nowej funkcji calculatedScene(Scene). Oznacza to, że SceneStrategy moż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

  • Navigation3 obsł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ść SharedTransitionScope do parametru NavDisplay lub rememberSceneState. (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

  • Navigation3 zależy teraz od NavigationEvent w wersji 1.0.2. Rozwiązuje to problem IllegalStateException spowodowany użyciem NavDisplay podczas AndroidStudio wersji 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

  • NavDisplay ustawia teraz LocalLifecycleOwner na poziomie Scene, co pozwala autorom scen określić, czy wszystkie przejścia zostały zakończone, sprawdzając, czy wartość Lifecycle.State to RESUMED. Działanie LocalLifecycleOwner na poziomie NavEntry pozostaje bez zmian: jest ono również ograniczone do STARTED, jeśli trwa przejście, a dodatkowo do CREATED, jeśli ten NavEntry został 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

  • SceneStrategyScope ma teraz tylko publiczny konstruktor bez argumentów, który umożliwia testowanie SceneStrategy i zwróconego Scene w izolacji. W bardziej złożonych przypadkach użycia użyj rememberSceneState(). (I8440c, b/451679047)

Poprawki błędów

  • Rozwiązaliśmy problem z nieskończoną pętlą podczas łączenia SceneStrategy z then. (Iba3f0, b/450323470)
  • Rozwiązaliśmy problem z migotaniem ekranu podczas zamiany backStack przekazywanego do NavDisplay i 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 calculateScene w usłudze SceneStrategy nie jest już @Composable. Zamiast tego rozważ przeniesienie tej pracy do konstrukcji metody SceneStrategy (czyli w metodzie rememberMySceneStrategy()), która w pełni umożliwia określenie czasu życia dowolnych wartości rememberSaveable lub kluczowych instrukcji remember na podstawie prawidłowych wartości. (If1733, b/448709506)
  • Parametr onBack dla SceneStrategy.calculateScene został przeniesiony do nowego zakresu odbiornika SceneStrategyScope, aby wyraźniej wskazać, że jest to parametr opcjonalny, i zapewnić punkt rozszerzenia dla przyszłych funkcji Navigation3. (I3aea3, b/448460407)
  • Funkcja onBack lambda przekazywana do funkcji NavDisplay i do funkcji SceneStrategy nie udostępnia już parametru count: Int, który wskazuje, kiedy należy usunąć wiele wpisów. Zamiast tego funkcja () -> Unit lambda 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ę NavEntryWrapper i zastąp jej funkcjonalność ostateczną klasą NavEntry z nowym konstruktorem dodatkowym, który przyjmuje klasę NavEntry z nową treścią. Umożliwi to dalsze dodawanie nowych treści do wpisu. (I7da2a, b/444447130)
  • Funkcja navEntryDecorator, która tworzy i zwraca NavEntryDecorator, 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 SavedStateNavEntryDecorator została zmieniona na SaveableStateHolderNavEntryDecorator, ponieważ dekoruje wpisy symbolem SaveableStateHolder. Dekorator został też przekształcony z funkcji w klasę, ponieważ jest funkcjonalnie fabryką dla NavEntryDecorator. (Ie6013, b/447381176)
  • W przypadku niestandardowych wyświetleń, w których zamiast NavDisplay używa się SceneState, nie trzeba już używać lokalizacji LocalEntriesToRenderInCurrentScene, która jest teraz wewnętrzna. (Ic40ef, b/414668196)
  • Usunęliśmy interfejsy SceneSetupNavEntryDecorator i rememberSceneSetupNavEntryDecorator() z publicznego interfejsu API. Ta funkcja jest teraz domyślnie włączona i nie musisz jej ręcznie dodawać. (Ieae42, b/444479133)
  • NavEntry, DialogScene, SinglePaneScene i SceneState implementują 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 NavDisplay są teraz częścią wspólnego interfejsu API, co umożliwia ich wywoływanie ze wszystkich platform. (I71af9, b/447147159)
  • Zmień nazwę EntryProviderBuilder na EntryProviderScope, aby odzwierciedlała fakt, że klasa jest DSL-em Kotlin, który zapewnia zakres do tworzenia NavEntries. (Ia7465)

Poprawki błędów

  • rememberNavBackStack() wymusza teraz serializację polimorficzną w przypadku NavKey i wymaga niestandardowego SavedStateConfiguration skonfigurowanego 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ów NavEntry<T> ozdobioną przez rememberDecoratedNavEntries. (I4025b, b/441940314)
  • Przeniesiono DialogScene do nowego pakietu. (Ia5840)
  • Usuń publiczny interfejs API DecorateNavEntry. Zamiast tego użyj rememberDecoratedNavEntries, 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ążenie NavDisplay, które zabiera SceneState i NavigationEventState. (Idfb46, b/444479133)
  • NavDisplay umożliwia teraz dostosowywanie przejść na podstawie tego, do jakiego Scene przechodzisz i z jakiego wychodzisz, poprzez sprawdzanie Transition currentState i targetState. (I906cc, b/443872322)
  • NavigationEventInfo ma teraz rolę abstract class zamiast interface. 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. NavigationEventHandler i NavigationBackHandler (oraz ich warianty) obsługują teraz nowe przeciążenie, które akceptuje podniesione NavigationEventStates. Proste przeciążenia (przyjmujące currentInfo) 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ów NavEntry do 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 entryProvider DSL. Jeśli wcześniej importowano androidx.navigation3.runtime.entry, nie jest to już wymagane. (I299fc)
  • Ograniczanie przepełnienia NavBackStackSerializer opartego na odbiciu do Androida. Zapobiega to niejawnej serializacji w czasie działania na platformach innych niż Android, wymuszając użycie jawnego przeciążenia SavedStateConfiguration w kodzie wieloplatformowym. (I73313, b/420443609)
  • Zmień swipeEdge w NavigationEvent na @IntDef (Icee54, b/443950342)
  • Ogranicz serializację NavBackStack do Androida. Zapobiega to błędom w czasie działania na platformach innych niż Android. W przypadku zapisywania stanu na wielu platformach użyj przeciążenia rememberNavBackStack z wyraźnym parametrem SavedStateConfiguration. (I1e418, b/420443609)

Poprawki błędów

  • Naprawiono awarię podczas przewidywanego przejścia wstecz, gdy zagnieżdżony element NavDisplay ma 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 DecoratedNavEntryProvider została zastąpiona funkcją rememberDecoratedNavEntries, która tworzy i zwraca obiekty NavEntry ozdobione listą podanych dekoratorów (I0fe1c, b/441328236).
  • NavBackStack jest teraz typem ogólnym dla typu NavKey. Umożliwia to aplikacjom i bibliotekom definiowanie niestandardowych typów kluczy dla ich stosów wstecznych, zamiast ograniczać się do NavKey. (I4d190,Iad2f4, b/420443609)
  • NavBackStack to 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)
  • RememberNavBackStack zostało przeniesione do commonMain, aby było dostępne na wszystkich platformach docelowych. (Id69e7, b/420443609)

Poprawki błędów

  • NavDisplay teraz prawidłowo przenosi poszczególne NavEntry do odpowiednich Lifecycle.State. (I30aac, b/440145700)
  • Rozwiązaliśmy problem polegający na tym, że funkcja NavDisplay ignorowała wszystkie zagnieżdżone elementy NavigationEventDispatcherOwner ustawione za pomocą biblioteki NavigationEvent LocalNavigationEventDispatcherOwner. (I6224a)

Zmiany zależności

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 Runtime obsł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 artefaktu Navigation3 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 NavDisplayInfo jest teraz publiczny i można go używać do pobierania listy widocznych wpisów z NavDisplay. (Ibc91f)

Zmiany w interfejsie API

  • Dodaliśmy nowy element NavBackStackSerializer, który będzie używany w połączeniu z elementem rememberNavBackStack do 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 key przekazywane do NavEntry nie było String lub gdy NavEntry nie zastąpiło contentKey i nie ustawiło go na key (pamiętaj, że w takim przypadku klucz można zapisać w Bundle), 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

Zmiany w interfejsie API

  • SavedStateNavEntryDecorator używa teraz SaveableStateRegistry wbudowanego w SaveableStateProvider do zapisywania i przywracania stanów. (If8d9a)
  • predictivePopTransitionSpec jest 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

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

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 NavEntry jest teraz ściśle oparty na bieżącej liście dekoratorów przekazywanych do NavDisplay. 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.content jest teraz prywatny. Aby wywołać NavEntry treści, wywołaj nowy interfejs NavEntry.Content() API, który nie wymaga już parametru key. (Icd0fd, b/420991203)
  • Pole NavEntry.key jest teraz prywatne. NavEntry i jego odpowiednie stany powinny być identyfikowane przez nowe pole contentKey, które jest generowane przez nową funkcję lambda contentKeyFactory i domyślnie przyjmuje wartość skrótu, który można zapisać i który jest generowany na podstawie parametru NavEntry.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

  • Navigation3 nie będzie już czyścić stanów dekoratora dla backStacks, 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.