启用 EditText 下划线

Enable EditText underline

默认情况下 EditText 有下划线。我想在禁用 Edittext 的情况下启动我的程序,当有人点击图标时,EditText 被启用。

这是一张显示“to...”的图片EditText没有下划线,而其他人有下划线,而有焦点的图片使用强调色。

我试过的代码:

foodIconButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            foodCurrentEditText.setEnabled(true);
            foodDesiredEditText.setEnabled(true);
            foodDesiredEditText.setFocusable(true);
            foodDesiredEditText.setBackgroundColor(Color.TRANSPARENT);
            //foodDesiredEditText.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#03DAC5")));
            //MyDrawableCompat.setColorFilter(foodDesiredEditText.getBackground(), ContextCompat.getColor(MainActivity.this, R.color.colorAccent));

            foodDesiredEditText.getBackground().setColorFilter(ContextCompat.getColor(MainActivity.this, R.color.colorAccent), PorterDuff.Mode.SRC_IN);
        }
    });

最后 3 行代码是我根据此处其他问题的建议尝试的不同方法。

如果你想隐藏和显示EditText的下划线,你可以这样做:

隐藏行:

ColorStateList colorStateList = ColorStateList.valueOf(Color.TRANSPARENT);
ViewCompat.setBackgroundTintList(foodDesiredEditText, colorStateList);

显示行:

ColorStateList colorStateList = ColorStateList.valueOf(ContextCompat.getColor(applicationContext, R.color.colorAccent));
ViewCompat.setBackgroundTintList(foodDesiredEditText, colorStateList);

如果您使用 androidx,更好的解决方案是:

隐藏行:

foodDesiredEditText.setBackgroundResource(0);

显示行:

foodDesiredEditText.setBackgroundResource(androidx.appcompat.R.drawable.abc_edit_text_material);