amt*_*rax 7 android user-experience kotlin android-actionbar android-jetpack-compose
我想隐藏默认操作栏,因此在清单文件中我有以下代码:
<style name="Theme.MyCompose" parent="Theme.Material.DayNight.NoActionBar">
</style>
<style name="Theme.Material.DayNight.NoActionBar" parent="@android:style/Theme.Material.Light.NoActionBar" />
Run Code Online (Sandbox Code Playgroud)
而效果是这样的:
我想要实现的目标是这样的:
摄影应覆盖白色区域。如何做到这一点?
更新1
在实施具有半透明状态栏和伴奏插图支持的解决方案后,我遇到了奇怪的行为。当窗口标志设置如下时:
window.setFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
)
Run Code Online (Sandbox Code Playgroud)
当删除这些标志时,插图可以工作,但我有那个阴影:
Phi*_*hov 12
如果您需要完全隐藏状态栏,则需要使用全屏主题,如本答案所示
自Compose 1.2.0-alpha03以来,Accompanist Insets大部分已移至 Compose Foundation 中,请查看迁移指南以了解更多详细信息。以下答案的主要变化是ProvideWindowInsets不再需要,并且应该替换一些导入。
如果您需要透明的状态栏,您可以按照此答案,加上设置伴奏插图进行撰写,如下所示:
WindowCompat.setDecorFitsSystemWindows(window, false)
window.setFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
)
Run Code Online (Sandbox Code Playgroud)
systemBarsPadding然后,在合成中,您可以使用其他伴奏插入修改器将图像设置为背景并从状态/导航栏偏移。
setContent {
ProvideWindowInsets {
ComposePlaygroundTheme {
Box {
Image(
painterResource(id = R.drawable.my_image),
contentDescription = "...",
contentScale = ContentScale.FillBounds,
modifier = Modifier.fillMaxSize()
)
Column(
Modifier.systemBarsPadding()
) {
Button(onClick = { /*TODO*/ }) {
Text("Hello")
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果:

| 归档时间: |
|
| 查看次数: |
8395 次 |
| 最近记录: |