在 Jetpack Compose 中更改状态栏颜色时遇到问题

facing problem in changing status bar color in 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

在每个 activity 中,而不是使用:

rememberSystemUiController().setStatusBarColor,

像这样设置状态栏颜色:

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

为此,google 也创建了一个名为 accompanist 的库。 您可以在这里找到它:https://github.com/google/accompanist

就像在这个模块中一样,有 multiple module 用于 Jetpack Compose,系统控制器,因此您可以使用它进行更改

要了解更多信息,请参阅文档 :-- https://google.github.io/accompanist/systemuicontroller/