如何更改Android状态栏图标的颜色?

问题描述 投票:0回答:1

我正在使用

enableEdgeToEdge()
函数创建一个新屏幕。在此屏幕上,状态栏下方显示图像库。根据我从 API 收到的图片,有时状态栏的图标并不完全可见,如屏幕截图左侧所示

enter image description here

看不到时间。

我正在尝试找到一种方法将此文本或此图标的颜色设置为另一种颜色,或者至少将该文本和图标更改为白色。

我已经看到您可以自定义状态栏稀松布,但这对我来说不是一个好的解决方案,因为我将隐藏部分图像并且文本保持黑色。

有什么方法可以在不改变应用程序主题或使用过于棘手的方法的情况下修改它?

android kotlin android-jetpack-compose android-statusbar
1个回答
0
投票

要使用 Kotlin 更改 Jetpack Compose 中状态栏图标和文本(包括时钟)的颜色,可以使用 WindowInsetsController 函数设置状态栏图标和文本的颜色。在 Jetpack Compose 中,必须通过 Activity 来访问某些系统设置(例如状态栏)。

这是将状态栏图标和文本的颜色更改为白色的示例代码:

 // Set the status bar icon color to white
    WindowCompat.setDecorFitsSystemWindows(window, false)
    val controller = WindowInsetsControllerCompat(window, window.decorView)
    controller.isAppearanceLightStatusBars = false // false for white icons, true for dark icons
© www.soinside.com 2019 - 2024. All rights reserved.