I am using TextInputLayout
with the design support library 22.2.1.
I set the value of the EditText
programmatically, and when the
Currently the only way to avoid this behavior is to add the EditText
programmatically.
TextInputLayout
without the EditText
. Programmatically or via XML inflation - doesn't matter, but it has to be empty.EditText
and set its text to whatever you need.EditTExt
to the TextInputLayout
.Here's an example:
TextInputLayout til = (TextInputLayout) findViewById(R.id.til);
til.setHint(R.string.hint);
EditText et = new EditText(getContext());
et.setText(value);
til.addView(et);
UPDATED 21/08/2015 WITH DESIGN LIBRARY V23:
With the design support library v23 you can disable the animation:
Just use the setHintAnimationEnabled method:
textInputLayout.setHintAnimationEnabled(boolean)
Here the issue on Google Tracker.
You can directly specify in the XML for TextInputLayout
:
app:hintAnimationEnabled="false"
TextInputLayout seller_email = (TextInputLayout) findViewById(R.id.existing_seller_email_ET);
seller_email.getEditText().setText("Any text");
Hope this will help you
I ran into this issue recently while using DialogFragment. To solve, simply disable the hint animation if you have a value in the field before you set the field value. The order is important.
For example,
TextInputLayout layout = (TextInputLayout) findViewById(R.id.text_layout);
TextInputEditText edit = (TextInputEditText) findViewById(R.id.text_edit);
String fieldValue = "Something";
layout.setHintAnimationEnabled(fieldValue == null);
edit.setText(fieldValue);
This way the layout does not initiate the animation when the text is set. You can also watch for text changes and enable it again when the field is empty.