Nawigacja to interakcje, które umożliwiają użytkownikom poruszanie się po różnych elementach treści w aplikacji, wchodzenie w nie i z nich wychodzenie.
Komponent Nawigacja w Jetpacku na Androida zawiera bibliotekę Nawigacja, wtyczkę Gradle Safe Args oraz narzędzia ułatwiające implementację nawigacji w aplikacji. Komponent Nawigacja obsługuje różne przypadki użycia nawigacji, od prostych kliknięć przycisków po bardziej złożone wzorce, takie jak paski aplikacji i schowki nawigacyjne.
Kluczowych pojęć
W tabeli poniżej znajdziesz omówienie najważniejszych pojęć dotyczących nawigacji oraz ich głównych typów.
Pomysł |
Cel |
Typ |
---|---|---|
Zorganizuj |
Element UI zawierający bieżący cel nawigacji. Oznacza to, że gdy użytkownik przemieszcza się po aplikacji, aplikacja zasadniczo zamienia miejsca docelowe w gospodarzu nawigacji. |
|
Wykres |
Struktura danych, która definiuje wszystkie miejsca docelowe nawigacji w aplikacji i sposób ich łączenia. |
|
Kontroler |
Centralny koordynator zarządzania nawigacją między miejscami docelowymi. Kontroler udostępnia metody nawigacji między miejscami docelowymi, obsługi precyzyjnych linków i zarządzania stosem wstecz. |
|
Miejsce docelowe |
Węzeł w grafie nawigacji. Gdy użytkownik przejdzie do tego węzła, host wyświetli jego zawartość. |
Zwykle tworzone podczas tworzenia grafu nawigacyjnego. |
Trasa |
jednoznacznie identyfikuje miejsce docelowe i wszystkie wymagane dane; Możesz nawigować za pomocą tras. Trasy prowadzą do miejsc docelowych. |
dowolny typ danych możliwy do serializacji; |
Zalety i funkcje
Element Nawigacja zapewnia też wiele innych korzyści i funkcji, takich jak:
- Animacje i przejścia: udostępnia standardowe zasoby do tworzenia animacji i przejść.
- Precyzyjne linki: implementują i obsługują precyzyjne linki, które kierują użytkownika bezpośrednio do miejsca docelowego.
- Wzorce interfejsu: obsługa wzorów takich jak menu nawigacyjne i dolna nawigacja przy minimalnym dodatkowym nakładzie pracy.
- Bezpieczeństwo typów: obejmuje obsługę przekazywania danych między miejscami docelowymi z bezpieczeństwem typów.
- Obsługa ViewModel: umożliwia ograniczenie zakresu działania
ViewModel
do wykresu nawigacyjnego, aby udostępniać dane związane z interfejsem między miejscami docelowymi wykresu. - Transakcje fragmentów: pełna obsługa transakcji fragmentów.
- Wstecz i w górę: domyślnie obsługuje działania wstecz i w górę.
Konfigurowanie środowiska
Aby uwzględnić obsługę nawigacji w projekcie, dodaj do pliku build.gradle
aplikacji te zależności:
Groovy
plugins { // Kotlin serialization plugin for type safe routes and navigation arguments id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.21' } dependencies { def nav_version = "2.8.6" // Jetpack Compose Integration implementation "androidx.navigation:navigation-compose:$nav_version" // Views/Fragments Integration implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Feature module support for Fragments implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version" // Testing Navigation androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" // JSON serialization library, works with the Kotlin serialization plugin. implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3" }
Kotlin
plugins { // Kotlin serialization plugin for type safe routes and navigation arguments kotlin("plugin.serialization") version "2.0.21" } dependencies { val nav_version = "2.8.6" // Jetpack Compose integration implementation("androidx.navigation:navigation-compose:$nav_version") // Views/Fragments integration implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // Feature module support for Fragments implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") // JSON serialization library, works with the Kotlin serialization plugin implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3") }
Informacje o dodawaniu do projektu innych komponentów architektury znajdziesz w artykule Dodawanie komponentów do projektu.
Dalsze kroki
Więcej dokumentacji i materiałów związanych ze składnikiem Nawigacja znajdziesz w tych zasobach.
Szczegółowe przewodniki
Więcej informacji o wdrażaniu hosta nawigacji i NavController
, a także szczegółowe informacje o ich interakcji z Compose i innymi frameworkami UI znajdziesz w tych przewodnikach:
- Tworzenie kontrolera nawigacji: przedstawia sposób tworzenia
NavController
. - Utwórz wykres nawigacji: szczegółowe informacje o tym, jak utworzyć hosta nawigacji i wykres nawigacji.
- Przejdź do miejsca docelowego: pokazuje, jak za pomocą
NavController
przechodzić między miejscami docelowymi na wykresie.
Ćwiczenia z programowania
- Więcej informacji o Jetpack Navigation
- Fragmenty i komponent Nawigacja
- Tworzenie aplikacji dostosowującej się do ekranu z dynamiczną nawigacją
Filmy
- Nawigacja
- 10 sprawdzonych metod przejścia na jedną aktywność
- Pojedyncza aktywność: dlaczego, kiedy i jak (Android Dev Summit '18)
- Android Jetpack: zarządzanie nawigacją w interfejsie za pomocą kontrolera nawigacji (Google I/O 2018)