白色 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 颜色,只有当当前主题的属性 elevationOverlayEnabledtruebackgroundColor (fillColor) 匹配主题的表面颜色(colorSurface 属性)。

如果您想避免这种行为,您可以在您的应用主题中设置:

<item name="elevationOverlayEnabled">false</item>

深色模式下应用主题以特殊方式查看,该属性默认为true