Nawigacja 3

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:

  1. 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.
  2. 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.
  3. 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.
  4. W razie potrzeby zmień strategie scenNavDisplay, 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ą.