白色 MaterialShapeDrawable 在海拔高度时为灰色
White MaterialShapeDrawable is Gray upon elevation
我目前有 FrameLayout 在其 init 函数中初始化时使用以下代码
val bgDrawable = MaterialShapeDrawable.createWithElevationOverlay(context).apply {
fillColor = ColorStateList.valueOf(Color.WHITE)
}
ViewCompat.setBackground(this, bgDrawable)
当高度为 0 时,背景正确呈现为白色
但是,当我将高度设置为大于0时,背景变成灰色。
我尝试将色调设置为白色,但是,这似乎摆脱了 MaterialShapeDrawable
的高程阴影
目标:
我只想要 FrameLayout
上的白色 MaterialShapeDrawable 背景值,并且当海拔 > 0 时,保持白色且海拔阴影完好无损
这取决于 elevation overlay 颜色,只有当当前主题的属性 elevationOverlayEnabled
是 true
且 backgroundColor
(fillColor
) 匹配主题的表面颜色(colorSurface
属性)。
如果您想避免这种行为,您可以在您的应用主题中设置:
<item name="elevationOverlayEnabled">false</item>
深色模式下应用主题以特殊方式查看,该属性默认为true
。
我目前有 FrameLayout 在其 init 函数中初始化时使用以下代码
val bgDrawable = MaterialShapeDrawable.createWithElevationOverlay(context).apply {
fillColor = ColorStateList.valueOf(Color.WHITE)
}
ViewCompat.setBackground(this, bgDrawable)
当高度为 0 时,背景正确呈现为白色
但是,当我将高度设置为大于0时,背景变成灰色。
我尝试将色调设置为白色,但是,这似乎摆脱了 MaterialShapeDrawable
目标:
我只想要 FrameLayout
上的白色 MaterialShapeDrawable 背景值,并且当海拔 > 0 时,保持白色且海拔阴影完好无损
这取决于 elevation overlay 颜色,只有当当前主题的属性 elevationOverlayEnabled
是 true
且 backgroundColor
(fillColor
) 匹配主题的表面颜色(colorSurface
属性)。
如果您想避免这种行为,您可以在您的应用主题中设置:
<item name="elevationOverlayEnabled">false</item>
深色模式下应用主题以特殊方式查看,该属性默认为true
。