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