禁用时更改EditText下划线

时间:2018-04-17 06:15:44

标签: android android-layout

假设我有一个编辑文本输入日期:

dob_enabled

我想动态更改其状态然后被禁用,并且它有一个虚线下划线表示它被禁用:

dob_disabled

我该怎么做呢?它将根据google material design guidelines

material_guidelines

1 个答案:

答案 0 :(得分:1)

在drawable文件夹中创建一个可绘制的underline.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:bottom="1dp"
    android:left="-2dp"
    android:right="-2dp"
    android:top="-2dp">
    <shape android:shape="rectangle">
        <stroke
            android:width="1dp"
            android:color="@android:color/black"
        android:dashGap="3.0dp"
        android:dashWidth="1dp" />
    </shape>
</item>

然后以编程方式应用此drawable并将其设置为禁用

editText=(EditText)findViewById(R.id.your_edittext);
editText.setEnabled(false);
editText.setBackgroundResource(R.drawable.underline);

输出:

enter image description here