В этом руководстве показано, как настроить значок навигации на верхней панели приложения для выполнения действий навигации.
Пример
В следующем фрагменте кода показан минимальный пример того, как можно реализовать верхнюю панель приложения с функциональным значком навигации. В этом случае значок перенаправляет пользователя к предыдущему пункту назначения в приложении:
@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), ) } }
Важные сведения о коде
Обратите внимание на следующее:
- Функция
TopBarNavigationExampleопределяет параметрnavigateBackтипа() -> Unit. - В качестве параметра
navigationIconдляCenterAlignedTopAppBarпередаетсяnavigateBack.
Таким образом, когда пользователь нажимает на значок навигации в верхней части приложения, вызывается navigateBack().
Передача функции
В этом примере в качестве значка используется стрелка назад. Таким образом, аргумент для navigateBack() должен перенаправлять пользователя к предыдущему пункту назначения.
Для этого передайте TopBarNavigationExample в вызов NavController.popBackStack(). Это делается там же, где вы создаете граф навигации. Пример:
NavHost(navController, startDestination = "home") {
composable("topBarNavigationExample") {
TopBarNavigationExample{ navController.popBackStack() }
}
// Other destinations...
Дополнительные ресурсы
Дополнительную информацию о том, как реализовать навигацию в приложении, можно найти в следующих руководствах:
- Навигация с помощью Compose
- Создание NavController
- Как создать граф навигации
- Как перейти к composable-функции