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, a przechodzenie do miejsc docelowych i z nich jest tak proste, jak dodawanie i usuwanie elementów z listy. Tworzy elastyczny system nawigacji w aplikacji, który zapewnia:

  • 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 na liście wstecznej (w tym animacjami);
  • Zakres dla elementów na liście wstecznej, który umożliwia zachowanie stanu, gdy element znajduje się na liście wstecznej.
  • 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, dzięki któremu treści mogą komunikować się z układem nadrzędnym (metadane)

Ogólnie rzecz biorąc, Navigation 3 możesz wdrożyć w ten sposób:

  1. Określ treści, do których użytkownicy mogą przechodzić w aplikacji, przypisując każdej z nich unikalny klucz, i dodaj funkcję, która będzie przekształcać ten klucz w treść. Zobacz Rozwiązywanie problemów z kluczami do treści.
  2. Utwórz stos wsteczny, do którego klucze są dodawane i z którego są usuwane w miarę poruszania się użytkowników po aplikacji. Zobacz Tworzenie stosu wstecznego.
  3. Użyj NavDisplay, aby wyświetlić stos wsteczny aplikacji. Za każdym razem, gdy zmienia się stos wsteczny, interfejs jest aktualizowany, aby wyświetlać odpowiednie treści. Zobacz Wyświetlanie stosu wstecznego.
  4. W razie potrzeby zmodyfikuj NavDisplaystrategie sceny, aby obsługiwać adaptacyjne układy i różne platformy.

Pełny kod źródłowy Navigation 3 jest dostępny w AOSP.

Ulepszenia w stosunku do Jetpack Navigation

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

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

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

Przykładowe fragmenty kodu

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