当提交为空或无效时,我需要在edittext
视图中显示错误消息。
问题是,如果用户打开导航抽屉错误消息显示在抽屉上,则此时任何edittext
都有错误消息提示。
我希望导航抽屉始终打开错误消息。因此,当抽屉关闭时,用户始终会收到无效editext
的错误消息。
注意:在Samsung
设备(Android 7.0
)中未发现此问题
在Moto
和lenovo
设备中观察到。
图片上方有错误信息。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/padding_eextra_wide"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/padding_eextra_wide">
<TextView
android:id="@+id/tv_title"
style="@style/Text.Medium"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:inputType="textMultiLine"
android:text="@string/title_add_care_recipient"
android:textSize="@dimen/font_16pt"/>
<TextView
android:id="@+id/tv_sub_title"
style="@style/Text.Medium"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/padding_20dp"
android:layout_marginRight="@dimen/padding_20dp"
android:gravity="center_horizontal"
android:inputType="textMultiLine"
android:lineSpacingMultiplier="1.2"
android:text="@string/sub_title_add_care_recipient"
android:textSize="@dimen/font_14pt"/>
<android.support.design.widget.TextInputLayout
style="@style/MaterialDesignTextInputLayout"
android:layout_marginTop="@dimen/padding">
<EditText
android:id="@+id/et_first_name"
style="@style/EditText.Medium.Mandatory"
android:hint="@string/hint_first_name"
android:maxLength="50"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
style="@style/MaterialDesignTextInputLayout">
<EditText
android:id="@+id/et_last_name"
style="@style/EditText.Medium.Mandatory"
android:hint="@string/hint_last_name"
android:maxLength="50"/>
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/btn_next"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="@dimen/padding"
android:background="@color/orange"
android:textAllCaps="true"
android:text="@string/text_save"/>
</LinearLayout>
</ScrollView>
答案 0 :(得分:4)
当抽屉打开时,使用
清除焦点表单EditText
editText.clearFocus();
或
您已TextInputLayout
,因此请尝试在TextInputLayout
上设置错误。
最好在TextInputLayout
textInputLayout.setError("Error message");
textInputLayout.setError(null);//for remove error
textInputLayout.setErrorEnable(false); //for remove error
答案 1 :(得分:-1)
在抽屉上打开设置错误为空。
ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar,
R.string.navigation_drawer_open, R.string.navigation_drawer_close) {
@Override
public void onDrawerClosed(View v) {
super.onDrawerClosed(v);
}
@Override
public void onDrawerOpened(View v) {
super.onDrawerOpened(v);
editText.setError(null);
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, 0);
}
};