Nawigacja 3

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:

  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 problemów z kluczami 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. 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.
  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 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ą.