Nawigacja 3

Navigation 3 to nowa biblioteka nawigacji zaprojektowana do współpracy z Compose. Dzięki Navigation 3 masz pełną kontrolę nad stosem wstecznym i możesz przechodzić do miejsc docelowych oraz z nich, dodając i usuwając elementy z listy. Tworzy elastyczny system nawigacji w aplikacji, zapewniając:

  • konwencje modelowania stosu wstecznego, w którym każdy wpis reprezentuje treść, do której użytkownik przeszedł;
  • interfejs, który automatycznie aktualizuje się wraz ze zmianami w stosie wstecznym (w tym animacjami);
  • zakres dla elementów w stosie wstecznym, który umożliwia zachowanie stanu, gdy element znajduje się w stosie wstecznym;
  • adaptacyjny system 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 komunikacji treści z layoutem nadrzędnym (metadane).

Ogólnie rzecz biorąc, Navigation 3 implementuje się w następujący sposób:

  1. Zdefiniuj treści, do których użytkownicy mogą przechodzić w Twojej aplikacji, z unikalnym kluczem, i dodaj funkcję, która będzie przekształcać ten klucz w treść. Zobacz Rozwiązywanie kluczy do treści.
  2. Utwórz stos wsteczny, do którego będą dodawane i z którego będą usuwane klucze, gdy użytkownicy będą poruszać się po aplikacji. Zobacz Tworzenie stosu wstecznego.
  3. Użyj NavDisplay, aby wyświetlić stos wsteczny aplikacji. Za każdym razem, gdy stos wsteczny się zmieni, interfejs zostanie zaktualizowany, aby wyświetlić odpowiednie treści. Zobacz Wyświetlanie stosu wstecznego.
  4. W razie potrzeby zmodyfikuj strategie scen NavDisplay's , aby obsługiwać układy adaptacyjne i różne platformy.
  5. Obsługuj precyzyjne linki, aby przechodzić bezpośrednio do miejsc docelowych.

Pełny kod źródłowy Navigation 3 znajdziesz w AOSP.

Ulepszenia w stosunku do Jetpack Navigation

Navigation 3 ulepsza oryginalny interfejs Jetpack Navigation API w następujący sposób:

  • Umożliwia prostszą integrację z Compose.
  • Daje pełną kontrolę nad stosem wstecznym.
  • Umożliwia tworzenie układów, które mogą odczytywać więcej niż 1 miejsce docelowe ze stosu wstecznego jednocześnie, dzięki czemu mogą dostosowywać się do zmian rozmiaru okna i innych danych wejściowych.

Więcej informacji o zasadach Navigation 3 i wyborach dotyczących projektu interfejsu API znajdziesz w poście na blogu.

Przykładowe fragmenty kodu

W repozytorium z przepisami znajdziesz przykłady użycia elementów składowych Navigation 3 do rozwiązywania typowych problemów z nawigacją.