Z tego przewodnika dowiesz się, jak sprawić, aby ikona nawigacji na pasku aplikacji na górze wykonywała czynności związane z nawigacją.
Przykład
Ten fragment kodu to minimalny przykład implementacji paska aplikacji z ikoną nawigacji funkcjonalnej. W tym przypadku ikona przenosi użytkownika do poprzedniego miejsca docelowego w aplikacji:
@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), ) } }
Najważniejsze informacje o kodzie
Zwróć uwagę na te kwestie w tym przykładzie:
- Komponent
TopBarNavigationExample
definiuje parametrnavigateBack
typu() -> Unit
. - Parametr
navigationIcon
w funkcjiCenterAlignedTopAppBar
zwraca wartośćnavigateBack
.
Dlatego gdy użytkownik kliknie ikonę nawigacji w górnej części aplikacji, zostanie wywołana funkcja navigateBack()
.
Przekazywanie funkcji
W tym przykładzie jako ikony użyto strzałki wstecz. Dlatego argument navigateBack()
powinien przekierowywać użytkownika do poprzedniego miejsca docelowego.
Aby to zrobić, prześlij TopBarNavigationExample
do NavController.popBackStack()
. Robisz to w miejscu, w którym tworzysz graf nawigacji. Przykład:
NavHost(navController, startDestination = "home") {
composable("topBarNavigationExample") {
TopBarNavigationExample{ navController.popBackStack() }
}
// Other destinations...
Dodatkowe materiały
Więcej informacji o wdrażaniu nawigacji w aplikacji znajdziesz w tych przewodnikach:
- Nawigacja w Compose
- Tworzenie kontrolera NavController
- Projektowanie grafu nawigacji
- Przejdź do komponentu