O controlador de navegação é um dos conceitos principais da navegação. Ele contém o gráfico de navegação e expõe métodos que permitem que o app vá de um destino a outro no gráfico.
Ao usar o componente Navigation, você cria um controlador de navegação
usando a classe NavController
. O NavController
é a API
de navegação central. Ele rastreia quais destinos o usuário visitou e permite
ir de um destino a outro. 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 o 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
em um nível 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, seguindo os princípios da
elevação de estado.
Visualizações
Se você estiver usando o framework da interface de visualizações, poderá extrair o NavController usando um dos métodos abaixo, dependendo do contexto:
Kotlin:
Java:
NavHostFragment.findNavController(Fragment)
Navigation.findNavController(Activity, @IdRes int viewId)
Navigation.findNavController(View)
Normalmente, primeiro você recebe um NavHostFragment
e depois extrai o
NavController
do fragmento. O snippet abaixo 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
- Projetar o gráfico de navegação: um guia que detalha como adicionar um gráfico
ao
NavController
que contenha todos os destinos no app. - Navegar até um destino: um guia que detalha como usar o
NavController
para ir de um destino a outro no gráfico de navegação.