改变EditText的背景颜色并保留下划线

5

文本下面的线是一种可绘制的集合,用作视图的背景。当调用editText.setBackgroundColor(color)时,内部会发生以下情况:

setBackground(new ColorDrawable(color));

这将移除包含线条的可绘制对象,并用我们给定的颜色进行替换。

是否可以在不使文本下方的线条消失的情况下更改EditText的背景颜色?

不能将EditText设置在布局内并更改布局的背景颜色。


你需要为此创建一个自定义的drawable。 - Santanu Sur
1个回答

3
尝试制作可绘制的一些类似于这样的东西:
<?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);

但是如果您想在运行时更改颜色怎么办?我在选择和取消选择rceyclerview中的行时会这样做。 - pau1adam
1
请按照此处描述的方式使用选择器 https://dev59.com/cWYr5IYBdhLWcg3wAFrE - MeLean

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接