Android TextInputLayout清除后不显示错误消息

Android TextInputLayout清除后不显示错误消息,android,user-interface,android-textinputlayout,Android,User Interface,Android Textinputlayout,我正在使用com.android上的TextInputLayout。支持:设计:23.3.0 当我第一次应用错误时,它会正确显示 mInputPassword.setError(getString(R.string.error_invalid_password)); mInputEmail.setError(getString(R.string.error_field_required)); 在下一次尝试登录时,我清除了错误 mInputEmail.setError(null); mInpu

我正在使用com.android上的TextInputLayout。支持:设计:23.3.0

当我第一次应用错误时,它会正确显示

mInputPassword.setError(getString(R.string.error_invalid_password));
mInputEmail.setError(getString(R.string.error_field_required));

在下一次尝试登录时,我清除了错误

mInputEmail.setError(null);
mInputPassword.setError(null);
然后我运行验证并使用与上面相同的代码再次设置错误,但这次应用了红线,但缺少错误文本。

有人知道为什么会发生这种情况,或者有过类似的经历吗


我看到了类似的报告,但它是针对较旧版本的设计库的,不知道这是否仍然是我使用的verison中的一个问题,

您正在清除错误消息字符串:

mInputEmail.setError(null);
mInputPassword.setError(null);
因此,当您重新运行验证时,将得到一个空白字符串

如果希望错误消息消失,请清除textview中的错误文本:

mInputEmail.setText("");
mInputPassword.setText("");

您只需执行以下步骤:

setErrorEnabled(true);
setError("error");
结算:

setError(null);
setErrorEnabled(false);

重复第一步以设置新错误
setError(null)
清除错误消息和图标,因此我认为要显示的视图已消失,
setErrorEnabled(false)
将重置它。

在第二次设置错误之前,您是否尝试过设置
setErrorEnabled(true)
?我知道这不应该是一个对象的可接受行为,但可能在某个时候它会返回到
false
…否则,请显示您的gradle文件…在第二次设置错误之前,我尝试将错误设置为true,但没有效果。您是否在设置错误(null)之后执行了步骤setErrorEnabled(false)?尝试此操作,然后在下一个setError(“错误”)之前启用setErrorEnabled(true);。。。。在setError(null)之后直接设置setErrorEnabled(false)似乎解决了这个问题。如果你想写下来作为一个答案,我会接受它作为一个解决方案。谢谢你在这个问题上帮助我。我认为setErrorEnabled(true)可能是不必要的,因为它在setError(“yourString”)的内部调用。注意:如果您在xml文本输入布局中设置
app:errorEnabled=“true”
,这将扩大错误空间,并且可能不需要以编程方式使用
setErrorEnabled()