Mangesh Ghotage Mangesh Ghotage - 5 months ago 20
Android Question

TextInputLayout.setError() leaves empty space after clearing the error

I recently used

TextInputLayout
and it's
setError()
method. The problem I'm getting is, when I clear the error by calling
setError(null)
it leaves so much of empty space at the bottom.

Normal:

Normal

With error:

With error

After clearing error:

After clearing error

After looking at the source, I found that they are making the view
INVISIBLE
instead of
GONE



.setListener(new ViewPropertyAnimatorListenerAdapter() {
@Override
public void onAnimationEnd(View view) {
view.setVisibility(INVISIBLE); // here it is

updateLabelVisibility(true);
} }).start();



I'm wondering why is it so? How to resolve this to avoid the empty space?

Answer

Check out the docs for

public void setErrorEnabled (boolean enabled)

It says

Whether the error functionality is enabled or not in this layout. Enabling this functionality before setting an error message via setError(CharSequence), will mean that this layout will not change size when an error is displayed.

Well based on this, try setting setErrorEnabled(true) before setError().