navigation3
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja Alfa |
|---|---|---|---|---|
| 11 lutego 2026 r. | 1.0.1 | - | - | 1.1.0-alpha04 |
Deklarowanie zależności
Aby dodać zależność od navigation3, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w artykule 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.1.0-alpha04" implementation "androidx.navigation3:navigation3-ui:1.1.0-alpha04" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.1.0-alpha04") implementation("androidx.navigation3:navigation3-ui:1.1.0-alpha04") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
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 nowy problem, 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.
Brak informacji o wersji tego artefaktu.
Wersja 1.1
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. Język 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 językiem DSLmetadatado dodawania przejść doNavDisplay. (Ic10ef, Ic049c,b/476213928)
Zmiany w interfejsie API
- Interfejs
OverlayScenema nową funkcję wywołania zwrotnegoonRemovedwstrzymania. 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 funkcjionRemovedmogą się zakończyć, zanim scena nakładki zostanie usunięta z kompozycji. (I29a72, b/440558061)
Poprawki błędów
- Naprawiono błąd, który powodował awarię, gdy do funkcji
NavDisplaylubrememberSceneStateprzekazywano wartośćSharedTransitionLayouti używano dowolnej funkcjiOverlayScene. Wynikało to z tego, że używanie wartościSharedTransitionLayoutdziała tylko w przypadku funkcjiNavEntriesrenderowanych w ramach funkcjiAnimatedContent, a funkcjeOverlayScenesą renderowane oddzielnie 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żywaniemNavDisplaypodczasAndroidStudiowersji 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 włączyć tę funkcję, 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żywaniemNavDisplaypodczasAndroidStudiowersji 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 Androidzie X Compose.
- Więcej informacji znajdziesz w poście na blogu z ogłoszeniem, w zasobach i 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 umożliwia autorom scen określenie, czy wszystkie przejścia zostały zakończone, poprzez sprawdzenie, 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 przypadku bardziej złożonych przypadków użycia użyj elementurememberSceneState(). (I8440c, b/451679047)
Poprawki błędów
- Rozwiązaliśmy problem z nieskończoną pętlą podczas łączenia tagów
SceneStrategyithen. (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 przypadkuSceneStrategynie 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() -> Unitbędzie teraz wywoływana kilka razy z rzędu w rzadkich przypadkach, gdy scena będzie wymagać wyświetlenia wielu wpisów. (Idedb5, b/446989346) - Usuń klasę
NavEntryWrapperi zastąp jej funkcję 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) SavedStateNavEntryDecoratorzostała zmieniona naSaveableStateHolderNavEntryDecorator, ponieważ dodaje do wpisówSaveableStateHolder. Dekorator został też przekształcony z funkcji w klasę, ponieważ funkcjonalnie jest fabryką dlaNavEntryDecorator. (Ie6013, b/447381176)- W przypadku niestandardowych wyświetleń, w których zamiast
NavDisplayużywany jest językSceneState, nie trzeba już używać lokalizacji kompozycjiLocalEntriesToRenderInCurrentScene, 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 komponentu NavDisplay. Dzięki temu scena może zastąpić metadane na
NavDisplay, np. przejściami. (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
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 polimorficzną serializację w przypadku NavKey i wymaga niestandardowegoSavedStateConfiguration, który jest skonfigurowany tak, aby zapewnić prawidłowe przywracanie stanu. Dokumentacja KDoc została zaktualizowana, aby odzwierciedlać 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 nowe przeciążenie
NavDisplay, które przyjmuje listęNavEntry<T>ozdobioną przezrememberDecoratedNavEntries. (I4025b, b/441940314) - Przeniesiono
DialogScenedo nowego pakietu. (Ia5840) - Usuń publiczny interfejs API
DecorateNavEntry. Zamiast tego użyjrememberDecoratedNavEntries, aby opakować 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 wykorzystujeSceneStateiNavigationEventState. (Idfb46, b/444479133) NavDisplayumożliwia teraz dostosowywanie przejść na podstawie tego,Scenedokąd i skąd się przemieszczasz, poprzez sprawdzanieTransitioncurrentStateitargetState. (I906cc, b/443872322)NavigationEventInfojest terazabstract 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) - Usuwanie parametrów 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 niejawnym błędom serializacji w czasie działania na platformach innych niż Android, ponieważ wymusza używanie jawnego przeciążeniaSavedStateConfigurationw kodzie wieloplatformowym. (I73313, b/420443609) - Make
NavigationEvent'sswipeEdgean@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ążonej funkcjirememberNavBackStackz wyraźnym parametremSavedStateConfiguration. (I1e418, b/420443609)
Poprawki błędów
- Naprawiono awarię podczas przewidywanego powrotu, 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 z listą podanych dekoratorów (I0fe1c, b/441328236). NavBackStackjest teraz typem ogólnym dla typuNavKey. Dzięki temu aplikacje i biblioteki mogą definiować niestandardowe typy kluczy dla swoich list wstecznych, zamiast ograniczać się doNavKey. (I4d190,Iad2f4, b/420443609)NavBackStackto teraz@kotlinx.serialization.Serializable, co umożliwia zapisywanie i przywracanie stanu nawigacji w przypadku zakończenia procesu i zmian konfiguracji bez dodatkowego kodu. (I2c3cf, b/420443609)RememberNavBackStackzostało przeniesione docommonMain, aby zapewnić jego wyświetlanie na wszystkich platformach docelowych. (Id69e7, b/420443609)
Poprawki błędów
NavDisplayteraz prawidłowo przenosi każdyNavEntrydo odpowiedniegoLifecycle.State. (I30aac, b/440145700)- Rozwiązaliśmy problem polegający na tym, że funkcja
NavDisplayignorowała wszystkie zagnieżdżone elementyNavigationEventDispatcherOwnerustawione za pomocą funkcjiLocalNavigationEventDispatcherOwnerbibliotekiNavigationEvent. (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
- Dodaliśmy nowe platformy Kotlin MultiPlatform (KMP) do artefaktów
Navigation3 Runtime.Navigation3 Runtimeobsługuje teraz 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łasny niestandardowyNavDisplay. Jeśli chcesz, aby ta funkcja była obsługiwana, zagłosuj na problem w Jetbrains tutaj i śledź postępy, aby uzyskać dodatkową pomoc. - Obiekt
NavDisplayInfojest teraz publiczny i można go używać do pobierania listy widocznych wpisów zNavDisplay. (Ibc91f)
Zmiany w interfejsie API
- Dodano nowy element
NavBackStackSerializer, który będzie używany w połączeniu z elementemrememberNavBackStackdo przywracania stanu.rememberNavBackStack()przyjmuje teraz teżSavedStateConfiguration, którego można 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 ich nieprawidłowe działanie w przypadkach, gdy wartość
keyprzekazywana do funkcjiNavEntrynie była wartościąStringlub gdy funkcjaNavEntrynie zastąpiła funkcjicontentKeyi nie ustawiła jej wartości równej wartościkey(pamiętaj, że w takim przypadku klucz można zapisać w obiekcieBundle). 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.
MinSdk Update
- 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, 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 najnowsza scena. (I7ba84, b/418153031)
Aktualizacja zależności
- Nawigacja 3 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
- Nawigacja 3 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ć treściNavEntry, wywołaj nowy interfejs APINavEntry.Content(), 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ą lambdęcontentKeyFactoryi domyślnie przyjmuje wartość skrótu, który można zapisać i który jest generowany na podstawieNavEntry.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
- Naprawiono problem 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. androidx.navigation3.runtime zapewnia elementy składowe, a androidx.navigation3.ui – warstwę interfejsu użytkownika za pomocą interfejsu NavDisplay API. Deweloperzy mogą przekazywać własny stan bezpośrednio do funkcji kompozycyjnej NavDisplay, która zmienia treść w zależności od zmian stanu 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.