Tworzenie kontrolera nawigacji

Kontroler nawigacji to jeden z kluczowych elementów nawigacji. Zawiera on wykres nawigacji i udostępnia metody, które umożliwiają aplikacji przechodzenie między miejscami docelowymi na wykresie.

Gdy używasz komponentu Navigation, tworzysz kontroler nawigacji za pomocą klasy NavController. NavController to centralny interfejs API nawigacji. Śledzi on, które miejsca docelowe odwiedził użytkownik, i umożliwia mu przechodzenie między nimi. Z tego przewodnika dowiesz się, jak utworzyć NavController w aplikacji.

Informacje o tym, jak dodać wykres nawigacji do NavController, znajdziesz w artykule Projektowanie wykresu nawigacji. NavController udostępnia kilka różnych sposobów przechodzenia do miejsc docelowych na wykresie. Więcej informacji znajdziesz w artykule Przechodzenie do miejsca docelowego.

Utwórz

Aby utworzyć NavController podczas korzystania z Jetpack Compose, wywołaj rememberNavController():

val navController = rememberNavController()

NavController należy utworzyć wysoko w hierarchii elementów kompozycyjnych. Musi być on wystarczająco wysoko, aby wszystkie elementy kompozycyjne, które muszą się do niego odwoływać, mogły to zrobić.

Dzięki temu możesz używać NavController jako pojedynczego źródła danych do aktualizowania elementów kompozycyjnych poza ekranami. Jest to zgodne z zasadami przenoszenia stanu.

Widoki

Jeśli używasz platformy interfejsu Views, możesz pobrać NavController za pomocą jednej z tych metod w zależności od kontekstu:

Kotlin:

Java:

Zwykle najpierw pobierasz NavHostFragment, a potem pobierasz NavController z fragmentu. Pokazuje to ten fragment 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 informacji