【发布时间】:2022-08-08 12:51:46
【问题描述】:
我不确定我何时更改或更改了什么,但突然之间 systemUiController 已停止影响我的应用程序中的状态栏颜色。对于上下文,我将伴奏 Insets 库与系统 UI 控制器结合使用,以摆脱状态和导航栏,直到一两次构建之前它都可以正常工作,现在它只在导航/手势上工作酒吧。
我通过将所有可组合项放入 ProvideWindowInsets 并将条形颜色设置为透明来做到这一点。出于某种原因,这只适用于导航栏。
为了调试,除了 mainActivity 的 onCreate 中的 setContent 之外,我已经删除了我的应用程序中的所有内容,包括所有服务,并且暂时删除了 setContent 中的所有内容,但只有一个空的主题提供程序。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, false)
setContent {
val systemUiController = rememberSystemUiController()
val useDarkIcons = !isSystemInDarkTheme()
SideEffect {
systemUiController.setSystemBarsColor(
color = Color.Transparent,
darkIcons = useDarkIcons
)
}
MicCheckTheme {
ProvideWindowInsets() {
}
}
}
}
当我运行它时,只有导航栏是透明的。我相信这不是 Insets 库的错,因为虽然状态栏保持其颜色,但应用程序内容位于栏下方,因此 Insets 可以按预期工作。
对于进一步的上下文,我正在使用 MainActivity 继承 ComponentActivity 和 Material3、Compose 1.2.x 和伴奏 0.24.9-beta,尽管我在调试时尝试了许多不同的版本,但都没有工作。我什至创建了一个新的测试应用程序项目并从伴奏者 github 粘贴了 Insets + SystemUIController 示例应用程序,即使这样也没有用。
请帮我!谢谢。
-
你用的是什么ProvideWindowInsets?你的模拟器 api 和设备是什么?我运行它时没有问题。
标签: android android-jetpack-compose windowinsets jetpack-compose-accompanist android-jetpack-compose-material3