更改EditText背景颜色并保持下划线

时间:2018-03-04 19:01:16

标签: java android

文本下方的行是一个可绘制的设置为视图的背景,当调用editText.setBackgroundColor(color)时,内部会发生以下情况:

setBackground(new ColorDrawable(color));

这将删除包含该行的drawable,并将其替换为我们提供的颜色。

是否可以更改EditText的背景颜色而不会使文本下的行消失?

在布局中设置EditText并更改布局的背景颜色不是一种选择。

1 个答案:

答案 0 :(得分:1)

尝试使drawable有人这样想:

<?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);