このガイドでは、トップ アプリバーのナビゲーション アイコンでナビゲーション アクションを実行する方法について説明します。
例
次のスニペットは、機能的なナビゲーション アイコンを使用してトップアプリバーを実装する方法の最小限の例です。この場合、アイコンをクリックすると、アプリ内の以前のデスティネーションに移動します。
@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
は、() -> Unit
型のパラメータnavigateBack
を定義します。 CenterAlignedTopAppBar
のnavigationIcon
パラメータにnavigateBack
を渡します。
そのため、ユーザーが最上位のアプリのナビゲーション アイコンをクリックするたびに、navigateBack()
が呼び出されます。
関数を渡す
この例では、アイコンに「戻る」矢印を使用しています。そのため、navigateBack()
の引数は、ユーザーを前のデスティネーションに移動させる必要があります。
そのためには、TopBarNavigationExample
に NavController.popBackStack()
への呼び出しを渡します。これは、ナビゲーション グラフを作成するときに行います。例:
NavHost(navController, startDestination = "home") {
composable("topBarNavigationExample") {
TopBarNavigationExample{ navController.popBackStack() }
}
// Other destinations...
参考情報
アプリにナビゲーションを実装する方法について詳しくは、次のガイドシリーズをご覧ください。