文本下面的线是一种可绘制的集合,用作视图的背景。当调用editText.setBackgroundColor(color)
时,内部会发生以下情况:
setBackground(new ColorDrawable(color));
这将移除包含线条的可绘制对象,并用我们给定的颜色进行替换。
是否可以在不使文本下方的线条消失的情况下更改EditText的背景颜色?
不能将EditText设置在布局内并更改布局的背景颜色。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="-2dp" android:left="-2dp" android:right="-2dp">
<shape>
<solid android:color="@color/background_color"/>
<stroke android:color="@color/underline_color" android:width="2dp"/>
</shape>
</item>
</layer-list>
使用资源文件设置EditText的背景,如下所示:
editText.setBackgroundResource(R.drawable.name_to_xml_file);