如何更改jetpackcompose中的状态栏颜色?
如何使状态栏颜色在 compose 中透明,如下所示:
它有相同的颜色,但有一点阴影。
回答
Google 刚刚创建了一个名为accompanist.
你可以在这里找到它:https : //github.com/google/accompanist
它包含多个有用的 Jetpack Compose 库,其中包括一个系统 UI 控制器,您可以使用它来更改状态栏颜色。
文档- https://google.github.io/accompanist/systemuicontroller/
回答
我使用了在 Jetpack Compose 示例中找到的这段代码。这对我来说可以。只需根据自己的喜好进行调整。
@Composable
fun SystemUi(windows: Window) =
MaterialTheme {
windows.statusBarColor = MaterialTheme.colors.surface.toArgb()
windows.navigationBarColor = MaterialTheme.colors.surface.toArgb()
@Suppress("DEPRECATION")
if (MaterialTheme.colors.surface.luminance() > 0.5f) {
windows.decorView.systemUiVisibility = windows.decorView.systemUiVisibility or
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
}
@Suppress("DEPRECATION")
if (MaterialTheme.colors.surface.luminance() > 0.5f) {
windows.decorView.systemUiVisibility = windows.decorView.systemUiVisibility or
View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
}
}
- 啊,旧的弃用警告抑制......最好的工艺
回答
只需采用老式的方式并将其添加到 themes.xml 中:
<item name="android:windowTranslucentStatus">true</item>