如何在Android中更改状态栏默认文本颜色- Jetpack组成,将状态栏文本颜色从白色更改为黑色(时间,Wifi和网络图标等...)
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 }
1条答案
按热度按时间gorkyyrv1#
你可以这样做:
基本上,如果系统不是深色主题,使用深色图标。
另一种可能性是获取状态栏的亮度。
并使用它像这样的例子: