Criar um controlador de navegação

O controlador de navegação é um dos conceitos principais da navegação. Ele mantém o gráfico de navegação e expõe métodos que permitem que o app se mova entre os destinos no gráfico.

Ao usar o componente de navegação, você cria um controlador de navegação usando a classe NavController. NavController é a API de navegação central. Ele rastreia quais destinos o usuário visitou e permite que ele se movimente entre destinos. Este guia demonstra como criar um NavController no seu app.

Para informações sobre como adicionar um gráfico de navegação ao NavController, consulte Projetar seu gráfico de navegação. O NavController oferece algumas maneiras diferentes de navegar até os destinos no gráfico. Para mais informações, consulte Navegar até um destino.

Compose

Para criar um NavController ao usar o Jetpack Compose, chame rememberNavController():

val navController = rememberNavController()

Crie o NavController alto na hierarquia de elementos combináveis. Ele precisa ser alto o suficiente para que todos os elementos combináveis que precisam referenciá-lo possam fazer isso.

Isso permite usar o NavController como a única fonte de verdade para atualizar elementos combináveis fora das telas. Isso segue os princípios da elevação de estado.

Visualizações

Se você estiver usando o framework da interface do Views, poderá recuperar o NavController usando um dos seguintes métodos, dependendo do contexto:

Kotlin:

Java:

Normalmente, primeiro você recebe um NavHostFragment e, em seguida, recupera o NavController do fragmento. O snippet a seguir demonstra isso:

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();

Leia mais