java - 更改 EditText 背景颜色并保留下划线

标签 java android

文本下方的线条是设置为 View 背景的可绘制对象,当调用 editText.setBackgroundColor(color) 时,内部会发生以下情况:

setBackground(new ColorDrawable(color));

这会删除包含线条的可绘制对象并将其替换为我们为其指定的颜色。

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

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

最佳答案

试着让 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);

关于java - 更改 EditText 背景颜色并保留下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49099223/

相关文章:

java - 如何访问 map 中嵌套 map 中的项目 (Java)

java - 日历给出了第 1 年的意外结果

android - 在 android 上加载纹理,图像只是黑白噪声

安卓错误 : addConnectionCallbacks not applicable for arguments

java - 简单 XML 框架的继承

java - 在 java 中矢量化文本文件以进行 kmeans 聚类 java encog

java - java从服务器发送文件到客户端

java - 使用数组作为测试方法的参数

Android ListView 标题文本在刷新 ListView 时消失

安卓工作室错误 : build fails every time I try to run the application on my phone