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.
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 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ą.