清除后 TextInputLayout 不显示错误消息
TextInputLayout not showing error message after clearing
我正在使用来自 com.android.support:design:23.3.0
的 TextInputLayout
当我第一次应用错误时,它显示正确。
mInputPassword.setError(getString(R.string.error_invalid_password));
mInputEmail.setError(getString(R.string.error_field_required));
在下次尝试登录时,我清除了错误。
mInputEmail.setError(null);
mInputPassword.setError(null);
然后我 运行 验证并使用与上面相同的代码再次设置错误,但这次应用了红线,但错误文本丢失了。
有人知道为什么会发生这种情况或遇到过类似情况吗?
我看到了类似的报道 here 但它是针对旧版本的设计库,不知道它是否仍然存在于我使用的版本中,
您正在清除错误消息字符串:
mInputEmail.setError(null);
mInputPassword.setError(null);
因此,当您重新运行验证时,您将得到一个空字符串。
如果您希望错误消息消失,请清除文本视图中的错误文本:
mInputEmail.setText("");
mInputPassword.setText("");
您只需执行以下步骤:
setErrorEnabled(true);
setError("error");
清算:
setError(null);
setErrorEnabled(false);
重复第一步以设置新错误。 setError(null)
清除错误消息和图标,所以我认为要显示的视图已经消失,setErrorEnabled(false)
将重置它。
我正在使用来自 com.android.support:design:23.3.0
的 TextInputLayout当我第一次应用错误时,它显示正确。
mInputPassword.setError(getString(R.string.error_invalid_password));
mInputEmail.setError(getString(R.string.error_field_required));
在下次尝试登录时,我清除了错误。
mInputEmail.setError(null);
mInputPassword.setError(null);
然后我 运行 验证并使用与上面相同的代码再次设置错误,但这次应用了红线,但错误文本丢失了。
有人知道为什么会发生这种情况或遇到过类似情况吗?
我看到了类似的报道 here 但它是针对旧版本的设计库,不知道它是否仍然存在于我使用的版本中,
您正在清除错误消息字符串:
mInputEmail.setError(null);
mInputPassword.setError(null);
因此,当您重新运行验证时,您将得到一个空字符串。
如果您希望错误消息消失,请清除文本视图中的错误文本:
mInputEmail.setText("");
mInputPassword.setText("");
您只需执行以下步骤:
setErrorEnabled(true);
setError("error");
清算:
setError(null);
setErrorEnabled(false);
重复第一步以设置新错误。 setError(null)
清除错误消息和图标,所以我认为要显示的视图已经消失,setErrorEnabled(false)
将重置它。