我已将 Compose for my app 从1.0.0-alpha10
最新的1.0.0-beta03
我想在系统栏下方边到边地布局我的活动内容。
除其他外,我使用以下代码告诉系统此意图。
window?.run {
WindowCompat.setDecorFitsSystemWindows(this, false)
}
这在以前的 Compose 版本中运行良好,但似乎beta03
(或者可能是之后的早期版本alpha10
)开始设置fitsSystemWindows
为true
并使上述代码无效。(将它移到下面setContent { }
也没有效果)
在布局资源管理器中,我可以看到decorView
它的直接子级LinearLayout
现在有fitsSystemWindows = true
我有下面的代码作为临时解决方案,它可以实现预期的行为。
// code that used to work on alpha10
window?.run {
WindowCompat.setDecorFitsSystemWindows(this, false)
}
setContent {
MyApp()
}
// temp workaround for beta03
window?.decorView?.fitsSystemWindows = false
window?.decorView?.allViews?.forEach { view ->
view.fitsSystemWindows = false
}
这感觉就像我正在与 Compose 对抗以获得预期的结果。
告诉 Compose 不要覆盖的“正确”方法是什么fitsSystemWindows
?