【发布时间】:2016-03-04 15:27:51
【问题描述】:
我想在我的新应用中使用 TextInputLayout。我有这样的布局
***
<android.support.design.widget.TextInputLayout
android:id="@+id/input_layout_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:textColorHint="@color/text_color"
app:hintTextAppearance="@style/HintTextAppearance.TextInputLayout"
app:errorTextAppearance="@style/ErrorTextAppearance.TextInputLayout">
<EditText
android:id="@+id/input_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="@string/hint_email"
android:background="@drawable/edit_text_border_radius"
android:padding="10dp"
android:drawableLeft="@drawable/ic_acc"/>
</android.support.design.widget.TextInputLayout>
***
在我的活动中,我有如下验证:
private boolean validatePassword() {
if (inputPassword.getText().toString().trim().isEmpty()) {
inputLayoutPassword.setError(getString(R.string.err_msg_password));
requestFocus(inputPassword);
return false;
} else {
inputLayoutPassword.setError(null);// it removes @drawable/edit_text_border_radius style from EditText
inputLayoutPassword.setErrorEnabled(false);
}
return true;
}
它不能正常工作。但好像你注意到我已经为 EditText 声明了@drawable/edit_text_border_radius 资源。如果我第一次不填写密码字段,它将将背景颜色更改为红色。因为它是 TextInputLayout 错误跨度的默认颜色。但是,如果我用一些值填充同一字段,则红色错误范围消失但 EditText 元素忘记它是背景资源(@drawable/edit_text_border_radius)之前设置的。
【问题讨论】:
-
实际上是在哪里设置两种颜色
-
@Sree ,抱歉哪些颜色?
-
我的意思是红色和另一个
-
错误跨度的红色来自 TextInputLayout 标准颜色。调用 setError(null) 后的另一种颜色我无法理解它来自哪里
-
所以如果你找到一个条目,最好再次为文本和背景设置你想要的颜色
标签: android