Nawigacja 3

Navigation 3 to biblioteka nawigacji zaprojektowana do współpracy z Compose. W przypadku Navigation 3 masz pełną kontrolę nad stosem wstecznym i możesz przechodzić między miejscami docelowymi, 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ł.
  • interfejsu, który automatycznie aktualizuje się wraz ze zmianami na stosie wstecznym (w tym animacjami);
  • Zakres dla elementów na stosie wstecznym, który umożliwia zachowanie stanu, gdy element znajduje się na 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 nimi.
  • mechanizm komunikacji treści z layoutem nadrzędnym (metadane);
  • Komunikacja między miejscami docelowymi w celu zwracania wyników między ekranami

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 do 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. Więcej informacji znajdziesz w artykule 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 scen, aby obsługiwać układy adaptacyjne i różne platformy.
  5. Obsługa precyzyjnych linków umożliwiających bezpośrednie przechodzenie do miejsc docelowych.

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

Ulepszenia w stosunku do Jetpack Navigation

Nawigacja 3 jest ulepszoną wersją oryginalnego interfejsu Jetpack Navigation API. Wprowadziliśmy w niej te zmiany:

  • Upraszcza 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 Navigation 3 i wyborach dotyczących projektu interfejsu API znajdziesz w poście na blogu z ogłoszeniem.

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