TextInputLayout boxBackgroundColor 不应用 alpha 通道。当我将应用程序合并到AndroidX时,就会发生这种情况。在合并之前,一切都运行良好。
当boxBackgroundColor为"#77ff0000"时,当我将boxBackgroundColor设置为透明时,颜色显示为浅红色,颜色显示为白色。它绘制背景,例如首先用白色填充,然后应用给定的框背景颜色。
格拉德尔:
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'com.google.android.material:material:1.1.0-alpha02'
在主题中设置colorSurface
。它必须与底层布局的背景颜色匹配,否则您可能会得到其他一些奇怪的颜色。 TextInputLayout
内部结合了colorSurface
和boxBackgroundColor
。
来源: TextInputLayout#calculateBoxBackgroundColor()
如何解决问题的示例:
<style name="MyTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="textInputStyle">@style/MyTextInputLayout</item>
<item name="colorSurface">#FFFFFFF</item>
</style>
<style name="MyTextInputLayout" parent="@style/Widget.MaterialComponents.TextInputLayout.FilledBox">
<item name="boxBackgroundColor">#77FF0000</item>
</style>