Este guia demonstra como fazer com que o ícone de navegação em uma barra de apps superior realize ações de navegação.
Exemplo
O snippet a seguir é um exemplo mínimo de como implementar uma barra de apps com um ícone de navegação funcional. Nesse caso, o ícone leva o usuário ao destino anterior no app:
@Composable fun TopBarNavigationExample( navigateBack: () -> Unit, ) { Scaffold( topBar = { CenterAlignedTopAppBar( title = { Text( "Navigation example", ) }, navigationIcon = { IconButton(onClick = navigateBack) { Icon( imageVector = Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Localized description" ) } }, ) }, ) { innerPadding -> Text( "Click the back button to pop from the back stack.", modifier = Modifier.padding(innerPadding), ) } }
Pontos principais sobre o código
Observe o seguinte neste exemplo:
- O elemento combinável
TopBarNavigationExample
define um parâmetronavigateBack
do tipo() -> Unit
. - Ele transmite
navigateBack
para o parâmetronavigationIcon
deCenterAlignedTopAppBar
.
Assim, sempre que o usuário clicar no ícone de navegação na parte de cima do app, ele
vai chamar navigateBack()
.
Transmitir uma função
Neste exemplo, usamos uma seta para voltar como ícone. Portanto, o argumento para
navigateBack()
precisa levar o usuário ao destino anterior.
Para fazer isso, transmita TopBarNavigationExample
uma chamada para
NavController.popBackStack()
. Faça isso onde você cria seu
gráfico de navegação. Exemplo:
NavHost(navController, startDestination = "home") {
composable("topBarNavigationExample") {
TopBarNavigationExample{ navController.popBackStack() }
}
// Other destinations...
Outros recursos
Para mais informações sobre como implementar a navegação no app, consulte esta série de guias:
- Navegação com o Compose
- Criar um NavController
- Projetar o gráfico de navegação
- Navegar até um elemento combinável