Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Navigation 3 to nowa biblioteka nawigacji zaprojektowana do współpracy z Compose. Dzięki funkcji Nawigacja 3 masz pełną kontrolę nad stosem wstecz. Przechodzenie do miejsc docelowych i zwrot z nich jest tak proste jak dodawanie i usuwanie elementów z listy. Tworzy elastyczny system nawigacji w aplikacji, zapewniając:
Konwencje modelowania stosu wstecz, w którym każdy element reprezentuje treści, do których użytkownik się przeszedł
interfejs użytkownika, który automatycznie aktualizuje się wraz ze zmianami w grupie elementów dostępnych w poprzedniej warstwie (w tym animacje);
Zakres elementów w grupie elementów poprzednich, który umożliwia zachowanie stanu, gdy element znajduje się w grupie elementów poprzednich
system elastycznego układu, który umożliwia wyświetlanie wielu miejsc docelowych jednocześnie i płynne przełączanie się między tymi układami;
mechanizm umożliwiający wymianę danych między treścią a jej układem nadrzędnym (metadanymi);
Ogólnie rzecz biorąc, implementacja wersji 3 funkcji Nawigacja przebiega w taki sposób:
Określ treści, do których użytkownicy mogą przechodzić w aplikacji. Każda z nich powinna mieć unikalny klucz. Dodaj funkcję, która rozwiąże ten klucz na treści. Zobacz artykuł Rozwiązywanie problemów z kluczami dostępu do treści.
Utwórz stos wstecz, na który klucze są dodawane i z niego usuwane, gdy użytkownicy poruszają się po aplikacji. Zobacz Tworzenie stosu wstecz.
Aby wyświetlić stos aplikacji, użyj NavDisplay. Za każdym razem, gdy nastąpi zmiana w backstacku, interfejs zostanie zaktualizowany, aby wyświetlić odpowiednie treści. Zobacz Wyświetlanie grupy elementów.
W razie potrzeby zmień strategie scen w NavDisplay, aby obsługiwać układy adaptacyjne i różne platformy.
Nawigacja 3 ulepsza oryginalny interfejs Jetpack Navigation API w tych aspektach:
zapewnia prostszą integrację z Compose;
Zapewnia pełną kontrolę nad stosem awaryjnym.
Umożliwia tworzenie układów, które mogą jednocześnie odczytywać więcej niż 1 miejsce docelowe z poprzedniego stosu, co pozwala im dostosowywać się do zmian rozmiaru okna i innych danych wejściowych.
Więcej informacji o zasadach i opcjach projektowania interfejsu API w ramach nawigacji w wersji 3 znajdziesz w tym poście na blogu.
Przykłady kodu
Repozytorium recept zawiera przykłady wykorzystania elementów składowych Nawigacja 3 do rozwiązywania typowych problemów z nawigacją.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[],null,["# Navigation 3\n\n| **Experimental:** Navigation 3 is in alpha. The APIs may change in the future. Please file bugs and feedback using the [issue tracker](https://issuetracker.google.com/issues/new?component=1750212&template=2102223).\n\nNavigation 3 is a new navigation library designed to work with Compose. With\nNavigation 3, you have full control over your back stack, and navigating to and\nfrom destinations is as simple as adding and removing items from a list. It\ncreates a flexible app navigation system by providing:\n\n- Conventions for modeling a back stack, where each entry on the back stack represents content that the user has navigated to\n- A UI that automatically updates with back stack changes (including animations)\n- A scope for items in the back stack, allowing state to be retained while an item is in the back stack\n- An adaptive layout system that allows multiple destinations to be displayed at the same time, and allowing seamless switching between those layouts\n- A mechanism for content to communicate with its parent layout (metadata)\n\nAt a high level, you implement Navigation 3 in the following ways:\n\n1. Define the content that users can navigate to in your app, each with a unique key, and add a function to resolve that key to the content. See [Resolve keys\n to content](/guide/navigation/navigation-3/basics#resolve-keys).\n2. Create a back stack that keys are pushed onto and removed as users navigate your app. See [Create a back stack](/guide/navigation/navigation-3/basics#create-back).\n3. Use a [`NavDisplay`](/reference/kotlin/androidx/navigation3/ui/package-summary#NavDisplay(kotlin.collections.List,androidx.compose.ui.Modifier,androidx.compose.ui.Alignment,kotlin.Function1,kotlin.collections.List,androidx.navigation3.ui.SceneStrategy,androidx.compose.animation.SizeTransform,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1)) to display your app's back stack. Whenever the back stack changes, it updates the UI to display relevant content. See [Display\n the back stack](/guide/navigation/navigation-3/basics#display-back).\n4. Modify `NavDisplay`'s [scene strategies](/guide/navigation/navigation-3/custom-layouts) as needed to support adaptive layouts and different platforms.\n\nYou can see the [full source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:navigation3/) for Navigation 3 on AOSP.\n\nImprovements upon Jetpack Navigation\n------------------------------------\n\nNavigation 3 improves upon the original Jetpack Navigation API in the following\nways:\n\n- Provides a simpler integration with Compose\n- Offers you full control of the back stack\n- Makes it possible to create layouts that can read more than one destination from the back stack at the same time, allowing them to adapt to changes in window size and other inputs.\n\nRead more about Navigation 3's principles and API design choices in [this blog\npost](https://android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html).\n\nCode samples\n------------\n\nThe [recipes repository](https://github.com/android/nav3-recipes) contains examples of how to use the\nNavigation 3 building blocks to solve common navigation challenges."]]