Navegando entre telas
Avance e volte entre destinos.
Navegando entre telas é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 2 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.
Avançando
Depois de configurar o NavHost, você navega para outra tela chamando navigate no NavController com a rota de destino.
navController.navigate("details")Disparando a partir de um botão
A navegação geralmente acontece em um retorno de chamada, como o onClick de um botão.
Button(onClick = { navController.navigate("details") }) {
Text("Open details")
}A pilha de retorno
Cada chamada a navigate coloca o novo destino na pilha de retorno. O botão de voltar do sistema o remove automaticamente, retornando à tela anterior.
popBackStack
Para voltar de forma programática, por exemplo, a partir de um botão personalizado de "Voltar", chame popBackStack. Isso remove o destino atual e retorna ao anterior.
navController.popBackStack()navigateUp
navigateUp() é semelhante e é a opção correta para a seta de voltar da barra de ferramentas. Ele respeita a hierarquia de navegação.
navController.navigateUp()Evitando destinos duplicados
Tocar rapidamente duas vezes em um botão pode colocar a mesma tela duas vezes na pilha. Use launchSingleTop = true para evitar o empilhamento de cópias duplicadas de um destino.
navController.navigate("details") {
launchSingleTop = true
}popUpTo
popUpTo limpa parte da pilha de retorno durante a navegação. É útil depois do login: vá para a tela inicial e remova a tela de login para que o retorno não leve a ela.
navController.navigate("home") {
popUpTo("login") { inclusive = true }
}inclusive
inclusive = true significa que o destino de popUpTo também é removido. Com inclusive = false, a remoção para logo antes dele.
Mantenha as telas desacopladas
Em vez de passar o NavController inteiro para cada tela, passe lambdas. A tela chama onOpenDetails() e não precisa conhecer os detalhes internos da navegação.
@Composable
fun HomeScreen(onOpenDetails: () -> Unit) {
Button(onClick = onOpenDetails) { Text("Details") }
}Conectando a lambda
O NavHost conecta a lambda a uma chamada real de navegação, mantendo a lógica de navegação em um só lugar.
composable("home") {
HomeScreen(onOpenDetails = {
navController.navigate("details")
})
}Reunindo tudo
A tela inicial navega para os detalhes; a tela de detalhes volta usando a seta de voltar.
composable("home") {
HomeScreen(onOpenDetails = { navController.navigate("details") })
}
composable("details") {
DetailsScreen(onBack = { navController.popBackStack() })
}Verificação rápida
Qual chamada retorna o usuário à tela anterior de forma programática?
Recapitulação
Navegação:
navigate("route")coloca um destino na pilha.popBackStack()/navigateUp()voltam à tela anterior.- Use
launchSingleTopepopUpTo { inclusive }para controlar a pilha. - Passe lambdas, não o controlador, para manter as telas reutilizáveis.
Perguntas Frequentes
A aula “Navegando entre telas” é grátis?
Sim — o texto completo de “Navegando entre telas” é 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 “Navegando entre telas”?
Avance e volte entre destinos. 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 2 de 4.
Quanto tempo leva a aula “Navegando entre telas”?
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