如何更改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>


以上是如何更改jetpackcompose中的状态栏颜色?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>