首页 > 解决方案 > 在jetpack compose中更改状态栏颜色时面临问题

问题描述

我的应用程序中有两个活动,一个是home.kt,另一个是about.kt,对于两个屏幕我都有不同的背景颜色,在home.kt文件中我将状态栏颜色设置为背景颜色。

rememberSystemUiController().setStatusBarColor(
    MaterialTheme.colors.background, darkIcons = MaterialTheme.colors.isLight
)

当我移动到时,about.kt我再次尝试将其颜色与背景匹配,但状态栏保持其设置的原始颜色home.kt

rememberSystemUiController().setStatusBarColor(
    MaterialTheme.colors.surface, darkIcons = MaterialTheme.colors.isLight
)
//This piece is having no effect

标签: androidkotlinandroid-jetpack-composeandroid-12

解决方案


在每个活动中,而不是使用:

rememberSystemUiController().setStatusBarColor,

像这样设置状态栏颜色:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            ComposePlaygroundTheme {
                window?.setStatusBarColor(Color.Red.toArgb())
            }
        }
    }
}

推荐阅读