Configurando o NavHost
Defina um grafo de navegação no Compose.
Configurando o NavHost é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 4 aulas no total.
Navegando entre telas
A maioria dos aplicativos tem mais de uma tela. A biblioteca Navigation Compose permite navegar entre telas compostas, mantendo uma pilha de retorno.
A dependência
Adicione a biblioteca de navegação ao seu arquivo do Gradle para obter NavController, NavHost e funções auxiliares.
// build.gradle (module)
implementation("androidx.navigation:navigation-compose:2.7.0")O NavController
O NavController é o objeto que executa a navegação e memoriza a pilha de retorno. Crie-o com rememberNavController().
val navController = rememberNavController()O NavHost
O NavHost é um composable que exibe o destino atual. Ele precisa do controller e de uma rota startDestination.
NavHost(
navController = navController,
startDestination = "home"
) {
// destinations go here
}Definindo destinos
Dentro da lambda de NavHost, declare cada tela com composable("route"). A string é a rota do destino.
composable("home") {
HomeScreen()
}As rotas são strings
Uma rota é um identificador de string exclusivo para um destino, semelhante ao caminho de uma URL. Você navega usando a rota, e o NavHost exibe o composable correspondente.
Um grafo com duas telas
Aqui está um grafo de navegação mínimo com dois destinos. "home" é exibido primeiro porque é o startDestination.
NavHost(navController, startDestination = "home") {
composable("home") { HomeScreen() }
composable("details") { DetailsScreen() }
}startDestination
O startDestination é a primeira tela que o usuário vê e a raiz da pilha de retorno. O aplicativo não pode voltar além dele.
Passando o controller adiante
As telas que iniciam a navegação precisam do NavController. Passe-o como parâmetro ou, de preferência, passe lambdas simples como onContinue para manter as telas reutilizáveis.
composable("home") {
HomeScreen(onOpenDetails = {
navController.navigate("details")
})
}Um NavHost por área
Normalmente, você tem um único NavHost no nível mais alto do aplicativo. O controller é criado uma vez com rememberNavController() e compartilhado entre os destinos.
Juntando tudo
Uma configuração completa: controller, host e dois destinos.
@Composable
fun App() {
val navController = rememberNavController()
NavHost(
navController = navController,
startDestination = "home"
) {
composable("home") { HomeScreen() }
composable("details") { DetailsScreen() }
}
}Verificação rápida
Qual objeto memoriza a pilha de retorno e executa a navegação?
Recapitulação
Configuração da navegação:
rememberNavController()cria o controller.NavHostexibe os destinos e precisa de umstartDestination.- Declare as telas com
composable("route"); as rotas são strings exclusivas.
Perguntas Frequentes
A aula “Configurando o NavHost” é grátis?
Sim — o texto completo de “Configurando o NavHost” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 4 aulas no total.
O que vou aprender em “Configurando o NavHost”?
Defina um grafo de navegação no Compose. Você pratica Android Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Android Academy?
Nenhuma experiência prévia é necessária. Android Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Configurando o NavHost”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Android Academy?
Sim. Cada aula de Android Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Configurando o NavHost
- Navegando entre telas
- Passando argumentos
- Navegação inferior