Android TextInputLayout未显示错误

Android TextInputLayout未显示错误,android,validation,android-edittext,textinputlayout,Android,Validation,Android Edittext,Textinputlayout,我正在将EditText与TextInputLayout一起使用。这是我用来显示错误的代码 private boolean validateEmail() { String email = inputEmail.getText().toString().trim(); if (email.isEmpty() || !isValidEmail(email)) { inputLayoutEmail.setErrorEnabled(true); i

我正在将EditText与TextInputLayout一起使用。这是我用来显示错误的代码

  private boolean validateEmail() {
    String email = inputEmail.getText().toString().trim();

    if (email.isEmpty() || !isValidEmail(email)) {
        inputLayoutEmail.setErrorEnabled(true);
        inputLayoutEmail.setError(getString(R.string.err_msg_email));
        requestFocus(inputEmail);
        return false;
    } else {
        inputLayoutEmail.setErrorEnabled(false);
    }

    return true;
}
我在edittext的textwatcher中调用这个方法,就像在这个链接中一样

一旦我输入了一个有效的输入,然后清除它,它将显示错误消息,正如预期的那样,但如果我再次输入文本,然后再次清除它,它将不起作用。也就是说,它没有显示任何错误消息

我正在使用
compile'com.android.support:design:23.1.0'
library

inputLayoutEmail.setErrorEnabled(true); 

正在调用,但未显示错误。有什么问题吗?我如何解决这个问题?

这个例子对我很有用

你用

compile 'com.android.support:design:23.1.0' 
正确的答案是

compile 'com.android.support:design:23.0.1' 

使用Android支持库,版本23.4.0(2016年5月)

修复了API级别21-22上设置错误启用(false)后,
TextInputLayout
未清除错误色调的问题

inputLayoutEmail.setErrorEnabled(false);
inputLayoutEmail.setError(null);

这对我有用。希望它也适用于您。

在您的版面文件中,确保您有用于文本输入版面的
layout\u height=“wrap\u content”

而不是维度。这就是我的问题所在。

我也遇到了同样的问题,并且我使用了数据绑定,所以添加以下行解决了我的问题:
app:errorEnabled=“true”

更改请求焦点(inputEmail);->inputEmail.requestFocus();它第一次工作。第二次以后,它不会显示错误。但会获得焦点。确定。我知道了-您使用compile'com.android.support:design:23.1.0',正确的是compile'com.android.support:design:23.0.1',谢谢..它与com.android一起工作。support:design:23.0.1您可以在您的答案中添加这个吗?这样我就可以接受您的答案了。如果我的compile sdk版本为24,该怎么办?这个问题似乎在23.4.0.在所有班级进行了4小时的调查后,解决了我的问题。。thanks@mg3,很高兴我能帮忙。我花了比我想承认的更多的时间在这个问题上,没有看到这个解决方案发布在任何其他地方,所以我想其他人可能会受益!似乎实际上是布局高度更具体-它不需要设置为包装这样的内容-只需要足够大-但是的,谢谢我也找不到任何地方@philthomas26从答案和你的评论中,我得到了这个想法,它实际上与身高有关,现在起作用了,谢谢你是最好的!