Navigation 3 to nowa biblioteka nawigacji zaprojektowana do współpracy z Compose. Dzięki funkcji Nawigacja 3 masz pełną kontrolę nad elementami w steku wstecz. Nawigacja do i z miejsc docelowych jest tak prosta 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 jego 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 kluczy 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
. Gdy zmienia się stos, interfejs jest aktualizowany, aby wyświetlać odpowiednie treści. Zobacz Wyświetlanie łańcucha przetwarzania. - W razie potrzeby zmień strategie scen w
NavDisplay
, aby obsługiwać układy adaptacyjne i różne platformy.
Pełny kod źródłowy aplikacji Nawigacja 3 znajdziesz na stronie AOSP.
Ulepszenia dotyczące Jetpack Navigation
Nawigacja 3 ulepsza oryginalny interfejs Jetpack Navigation API w tych aspektach:
- zapewnia prostszą integrację z Compose;
- Zapewnia pełną kontrolę nad stosem.
- 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ą.