android - 在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
解决方案
在每个活动中,而不是使用:
rememberSystemUiController().setStatusBarColor
,
像这样设置状态栏颜色:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
ComposePlaygroundTheme {
window?.setStatusBarColor(Color.Red.toArgb())
}
}
}
}
推荐阅读
- typescript - 简化 if 语句 - Angular
- ios - 如何在swift 5中的每个控制器上调用一个函数
- mysql - SQL LEFT JOIN 用于第一个表的所有记录和另一个表的匹配记录
- azure - 配置为从死信队列接收消息时未收到常规服务总线消息
- python - 我无法在我的项目上运行 SonarQube
- python - 将布尔值与整数混合时,Mypy 不会抛出错误
- javascript - 如何获取元素的新值?- Javascript
- javascript - 如何监听 firestore 子集合中所有文档的更改?
- sapper - 重新导出特定路线/段塞(静态生成)
- node.js - AppEngine 标准(PDF 和 NodeJS)上的 ImageMagick 问题