我试图为EditText
进行下划线颜色更改(它将用于输入验证,因此它必须能够在运行时更改)。
我正在使用AppCompat库。问题是在API 21及更高版本上,我看到透明的黑色线条(灰色叠加层),而不是粗体版本。
如何使其与API 16相同?
我用这段代码改变了色调:
final Drawable originalDrawable = view.getBackground();
final Drawable wrappedDrawable = DrawableCompat.wrap(originalDrawable);
DrawableCompat.setTint(wrappedDrawable, Color.RED);
setBackground(view,wrappedDrawable);
答案 0 :(得分:6)
通过将这些行添加到我的主题中找到解决方案:
<item name="editTextStyle">@style/Base.V7.Widget.AppCompat.EditText</item>
<item name="editTextBackground">@drawable/abc_edit_text_material</item>
答案 1 :(得分:2)
您不应该更改背景。如果你创建一个主题,并使用主题颜色(colorPrimary,colorAccent是小部件最重要的)来获得所需的效果,它会更好。将主题分配给EditText并享受。注意:您应该使用AppCompat主题之一作为基本主题。
<style name="AppTheme.Base" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorAccent">@color/accent</item>
</style>
并在您的colors.xml
中<color name="primary">#ff0000</color>
<color name="accent">#00ff00</color>