具有自定义背景的Android TextInputEdittext无法正常工作



我正在使用textInputEdittext textInputlayout我不得不为我的EditText设置背景,以实现我的EditText的边界视图。但是,当我在textInputlayout上调用setError((时,整个Edittext颜色会更改为红色。但是我只想更改错误文本的颜色,而不是整个视图。

设置错误之前:

屏幕截图

设置错误后:

屏幕截图

这是我的XML代码:

<android.support.design.widget.TextInputLayout
            android:layout_alignParentTop="true"
            android:id="@+id/ex_pass_holder"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:passwordToggleEnabled="false"
            android:gravity="right">
            <android.support.design.widget.TextInputEditText
                android:id="@+id/ex_pass_et"
                android:layout_width="fill_parent"
                android:layout_height="50dp"
                android:hint="رمز عبور فعلی"
                android:inputType="textPassword"
                android:textColor="#000"
                android:textSize="15sp"
                android:gravity="right|center"
                android:background="@drawable/edittext_bg"
                android:padding="8dp"
                />
        </android.support.design.widget.TextInputLayout>

请帮助我,我在做什么错?

我通过扩展textInputlayout和覆盖某些方法

来解决此问题
public class CustomTextInputLayout extends TextInputLayout {
    public CustomTextInputLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void setError(@Nullable CharSequence error) {
        super.setError(error);
        try {
            EditText et = getEditText();
            Drawable editTextBackground = et.getBackground();
            editTextBackground.clearColorFilter();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    @Override
    protected void drawableStateChanged() {
        super.drawableStateChanged();
        try {
            EditText et = getEditText();
            Drawable editTextBackground = et.getBackground();
            editTextBackground.clearColorFilter();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新