從頂端應用程式列導覽

本指南說明如何讓頂端應用程式列中的導覽圖示執行導覽動作。

範例

下列程式碼片段是最低限度的範例,說明如何實作頂端應用程式列和可用的導覽圖示。在這種情況下,圖示會將使用者帶往應用程式中的先前目的地:

@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 參數。
  • 並為 CenterAlignedTopAppBarnavigationIcon 參數傳遞 navigateBack

因此,每當使用者點選應用程式頂端返回的導覽圖示時,系統就會呼叫 navigateBack()

傳遞函式

本範例使用返回箭頭做為圖示。因此,navigateBack() 的引數應將使用者帶往上一個目的地。

如要這麼做,請將 TopBarNavigationExample 傳遞至 NavController.popBackStack()。您可以在建構導覽圖表時執行這項操作。例如:

NavHost(navController, startDestination = "home") {
    composable("topBarNavigationExample") {
        TopBarNavigationExample{ navController.popBackStack() }
    }
    // Other destinations...

其他資源

如要進一步瞭解如何在應用程式中導入導覽功能,請參閱下列一系列指南: