Tworzenie kontrolera nawigacji

Kontroler nawigacji to jedno z kluczowych pojęć związanych z nawigacją. Znajdują się w nim wykres nawigacyjny i prezentowane metody, które umożliwiają aplikacji poruszanie się między miejscami docelowymi na wykresie.

Jeśli korzystasz z komponentu Nawigacja, możesz utworzyć kontroler nawigacji za pomocą klasy NavController. NavController to główny interfejs API nawigacji. Śledzi miejsca docelowe odwiedzonych przez użytkownika i umożliwia przechodzenie między miejscami docelowymi. Z tego przewodnika dowiesz się, jak utworzyć NavController w aplikacji.

Więcej informacji o dodawaniu wykresu nawigacyjnego do elementu NavController znajdziesz w artykule Projektowanie wykresu nawigacyjnego. NavController umożliwia poruszanie się po miejscach docelowych na wykresie na kilka różnych sposobów. Więcej informacji znajdziesz w sekcji Nawigacja do miejsca docelowego.

Utwórz

Aby utworzyć NavController przy użyciu Jetpack Compose, wywołaj rememberNavController():

val navController = rememberNavController()

Element NavController należy utworzyć wysoko w hierarchii funkcji kompozycyjnej. Musi być na tyle wysoka, aby mogły się do niego odwoływać wszystkie elementy kompozycyjne.

Dzięki temu będzie można używać NavController jako jedynego źródła danych do aktualizowania elementów kompozycyjnych poza ekranami. Jest to zgodne z zasadami transferu stanowego.

Wyświetlenia

Jeśli korzystasz z platformy Widoki UI, możesz pobrać kontroler NavController, korzystając z jednej z tych metod w zależności od kontekstu:

Kotlin:

Java:

Zwykle najpierw pobierasz NavHostFragment, a potem pobierasz z niego NavController. Można to zademonstrować za pomocą tego fragmentu kodu:

Kotlin

val navHostFragment =
    supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController

Java

NavHostFragment navHostFragment =
    (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
NavController navController = navHostFragment.getNavController();

Więcej materiałów

  • Zaprojektuj wykres nawigacyjny: przewodnik zawierający szczegółowe informacje o tym, jak dodać do elementu NavController wykres zawierający wszystkie miejsca docelowe w aplikacji.
  • Nawigacja do miejsca docelowego: przewodnik wyjaśniający, jak używać elementu NavController do poruszania się między miejscami docelowymi na wykresie nawigacyjnym.