如何在Android中更改状态栏默认文本颜色

2hh7jdfx  于 2023-05-12  发布在  Android
关注(0)|答案(1)|浏览(142)

如何在Android中更改状态栏默认文本颜色- Jetpack组成,将状态栏文本颜色从白色更改为黑色(时间,Wifi和网络图标等...)

gorkyyrv

gorkyyrv1#

你可以这样做:

setContent {
        MyTheme {
            Surface(
                modifier = Modifier.fillMaxSize(),
                color = MaterialTheme.colorScheme.background
            ) {
                val systemUiController = rememberSystemUiController()
                val useDarkIcons = !isSystemInDarkTheme()

                SideEffect {
                    systemUiController.setStatusBarColor(
                        color = Color(0xff655D8A),
                        darkIcons = !useDarkIcons
                    )
                }
              }
            }

基本上,如果系统不是深色主题,使用深色图标。
另一种可能性是获取状态栏的亮度。

fun isDark(color: Int): Boolean {
            return ColorUtils.calculateLuminance(color) < 0.5
        }

并使用它像这样的例子:

fun getTextColor(accentColor: Int): Color {
            val color =
                if (isDark(accentColor)) {
                    Color.White
                } else {
                    Color.DarkGray
                }
            return color
        }

相关问题