android - 禁用时更改 EditText 下划线

标签 android android-layout

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

dob_enabled

我想动态改变它的状态然后被禁用,并让它有一个虚线下划线来表明它被禁用:

dob_disabled

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

material_guidelines

最佳答案

在drawable文件夹中创建一个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>

然后以编程方式应用此可绘制对象并将其设置为禁用

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

输出:

enter image description here

关于android - 禁用时更改 EditText 下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49871085/

相关文章:

java - GetExtra PutExtra

android - 明智地为 ACTION_SEND 文本设置默认应用程序(通过选择器、首选项等)

java - 使布局适应 hdpi 和 xhdpi

android - 如何将 fragment 替换为 TabLayout 和 ViewPager 中的另一个 fragment

java - 无法在同一 Activity 中用 fragment B 替换 fragment A

java - 以编程方式叠加图像

android - 在 Jetpack Compose 的无状态 Compose 中管理条件逻辑

android - 如何根据加载图像的颜色绘制边框?

Android使用动画增长LinearLayout

Android : holder. getSurface() 总是返回 null