TextInputLayout animation overlaps the text when the text is set programmatically

后端 未结 4 828
無奈伤痛
無奈伤痛 2020-12-29 08:04

I am using TextInputLayout with the design support library 22.2.1.

I set the value of the EditText programmatically, and when the

相关标签:
4条回答
  • 2020-12-29 08:07

    Currently the only way to avoid this behavior is to add the EditText programmatically.

    1. Create a TextInputLayout without the EditText. Programmatically or via XML inflation - doesn't matter, but it has to be empty.
    2. Create the EditText and set its text to whatever you need.
    3. Add the 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.

    0 讨论(0)
  • 2020-12-29 08:08

    You can directly specify in the XML for TextInputLayout :

     app:hintAnimationEnabled="false"
    
    0 讨论(0)
  • 2020-12-29 08:11
    TextInputLayout seller_email = (TextInputLayout) findViewById(R.id.existing_seller_email_ET);
    
    seller_email.getEditText().setText("Any text");
    

    Hope this will help you

    0 讨论(0)
  • 2020-12-29 08:16

    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.

    0 讨论(0)
提交回复
热议问题