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 
ViewModeldo 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.9.5" // 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.9.5" // 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ą 
NavControllerprzechodzić 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)