Nawigacja

Nawigacja odnosi się do interakcji, które pozwalają użytkownikom przechodzić między różnymi elementami zawartości aplikacji, do nich docierać i wycofywać się z nich.

Komponent nawigacji w Androidzie Jetpack obejmuje bibliotekę nawigacji, wtyczkę Safe Args Gradle i narzędzia ułatwiające wdrożenie nawigacji po aplikacjach. 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 szuflada nawigacji.

Kluczowe pojęcia

W tabeli poniżej znajdziesz przegląd 3 głównych pojęć związanych z nawigacją i ich głównych typów, które służą do ich wdrażania.

Pomysł

Cel

Typ

Host

Element interfejsu zawierający bieżące miejsce docelowe nawigacji. Oznacza to, że gdy użytkownik porusza się po aplikacji, aplikacja zmienia miejsca docelowe zarówno z hosta nawigacji, jak i z niego.

Wykres

Struktura danych definiująca wszystkie miejsca docelowe nawigacji w aplikacji i sposób ich łączenia.

NavGraph

Kontroler

Centralny koordynator do zarządzania nawigacją między miejscami docelowymi. Kontroler udostępnia metody nawigowania między miejscami docelowymi, obsługi precyzyjnych linków, zarządzania stosem wstecznym i nie tylko.

NavController

Zalety i funkcje

Komponent Nawigacja ma wiele innych zalet i funkcji, w tym:

  • Animacje i przejścia: udostępnia ustandaryzowane zasoby animacji i przejść.
  • Precyzyjne linki: implementuje i obsługuje precyzyjne linki, które prowadzą użytkownika bezpośrednio do miejsca docelowego.
  • Wzorce interfejsu: obsługa wzorców takich jak panele nawigacji i dolna nawigacja przy minimalnym nakładzie pracy.
  • Bezpieczeństwo typu: zawiera wtyczkę Safe Args Gradle, która zapewnia bezpieczeństwo typu podczas nawigacji i przekazywania danych między miejscami docelowymi.
  • Obsługa ViewModel: włącza zakres zakresu ViewModel do wykresu nawigacyjnego, aby udostępniać dane związane z interfejsem między miejscami docelowymi wykresu.
  • Transakcje z fragmentem: w pełni obsługuje i obsługuje transakcje z fragmentami.
  • Kopia zapasowa i tworzenie:domyślnie prawidłowo obsługuje działania związane z tworzeniem kopii zapasowej i tworzeniem kopii zapasowej.

Konfigurowanie środowiska

Aby uwzględnić w projekcie obsługę nawigacji, dodaj te zależności do pliku build.gradle aplikacji:

Groovy

dependencies {
  def nav_version = "2.7.7"

  // Java language implementation
  implementation "androidx.navigation:navigation-fragment:$nav_version"
  implementation "androidx.navigation:navigation-ui:$nav_version"

  // Kotlin
  implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
  implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

  // Feature module Support
  implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"

  // Testing Navigation
  androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"

  // Jetpack Compose Integration
  implementation "androidx.navigation:navigation-compose:$nav_version"
}

Kotlin

dependencies {
  val nav_version = "2.7.7"

  // Java language implementation
  implementation("androidx.navigation:navigation-fragment:$nav_version")
  implementation("androidx.navigation:navigation-ui:$nav_version")

  // Kotlin
  implementation("androidx.navigation:navigation-fragment-ktx:$nav_version")
  implementation("androidx.navigation:navigation-ui-ktx:$nav_version")

  // Feature module Support
  implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version")

  // Testing Navigation
  androidTestImplementation("androidx.navigation:navigation-testing:$nav_version")

  // Jetpack Compose Integration
  implementation("androidx.navigation:navigation-compose:$nav_version")
}

Informacje o dodawaniu innych komponentów architektury do projektu znajdziesz w artykule Dodawanie komponentów do projektu.

Dalsze kroki

Więcej dokumentacji i zasobów związanych z komponentem Nawigacja znajdziesz w tych materiałach.

Szczegółowe przewodniki

Więcej informacji o implementowaniu hosta nawigacji i elementu NavController, a także szczegółowych informacji na temat ich interakcji z interfejsem tworzenia wiadomości i innymi platformami interfejsu znajdziesz w tych przewodnikach:

Ćwiczenia z programowania

Filmy

Próbki