首页 > 解决方案 > 如何使用 Jetpack 撰写应用栏后退按钮

问题描述

getActionBar().setDisplayHomeAsUpEnabled(true) 这是我用于普通 android appCp、pact 活动以在两个或多个活动之间切换的。谁能告诉我如何在 jetpack Compose 中执行此操作?

标签: androidandroid-actionbarandroid-jetpack-compose

解决方案


另一个答案对于显示后退按钮是正确的。这是一个使用TopAppBar可组合的替代方案。

我也遇到了类似的问题。我想解决的主要问题是当您位于根目录时或者如果 backstack 中没有任何内容时隐藏后退按钮,setDisplayHomeAsUpEnabled因为只要您指定了您的父母,就可以解决这个问题。
假设您正在使用带有 compose 的导航控制器,您可以执行以下操作

val navController = rememberNavController()
Scaffold(
    topBar = {
        TopAppBar(
            title = { Text(text = "app bar title") },
            navigationIcon = if (navController.previousBackStackEntry != null) {
                {
                    IconButton(onClick = { navController.navigateUp() }) {
                        Icon(
                            imageVector = Icons.Filled.ArrowBack,
                            contentDescription = "Back"
                        )
                    }
                }
            } else {
                null
            }

        )
    },
    content = {
        // Body content
    }
)

这里的关键是在后堆栈中没有任何内容时设置tonavigationIcon的参数。这样,当您位于根目录时,后退箭头将被隐藏,否则会显示。TopAppBarnull


推荐阅读