Kas*_*ath 21 android android-actionbar android-jetpack-compose
getActionBar().setDisplayHomeAsUpEnabled(true) 这是我用于普通 android AppCompatActivity 在两个或多个 Activity 之间切换的方法。有人能告诉我如何在 jetpack Compose 中执行此操作吗?
Nav*_*eed 33
另一个答案对于显示后退按钮是正确的。这是一个使用TopAppBar可组合项的小替代方案。
我也遇到了类似的问题。我想解决的主要问题是当您位于根目录或后台堆栈中没有任何内容时隐藏后退按钮,因为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
}
)
Run Code Online (Sandbox Code Playgroud)
这里的关键是当返回堆栈中没有任何内容时将navigationIcon参数设置为TopAppBarto 。null这样,当您位于根目录时,后退箭头将被隐藏,否则将显示。
您可以将主要内容包装在Scaffold可组合项中,并使用topBar添加后退按钮并处理后退操作,如下所示:
import androidx.compose.material.Scaffold
.
.
Scaffold(
topBar = {
Row {
Icon(
imageVector = Icons.Filled.ArrowBack,
contentDescription = "Back",
modifier = Modifier
.padding(16.dp)
.clickable {
// Implement back action here
}
)
}
}
) {
BodyContent()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26229 次 |
| 最近记录: |