当以编程方式设置文本时,TextInputLayout动画与文本重叠

Gab*_*tti 15 android android-support-library material-design android-support-design android-textinputlayout

我使用TextInputLayout设计支持库22.2.1.

我以EditText编程方式设置了值,当屏幕出现时,我可以看到TextInputLayout在移动到浮动位置之前,文本内部重叠的提示.

这是一个简单的布局:

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="hint1" />

    </android.support.design.widget.TextInputLayout> 
Run Code Online (Sandbox Code Playgroud)

在我的Activity:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        EditText e1 = (EditText) findViewById(R.id.editText1);
        e1.setText("TEXT TEST 1");
   }
Run Code Online (Sandbox Code Playgroud)

有没有人知道解决方法?

在此输入图像描述

Gab*_*tti 17

目前,避免此行为的唯一方法是以EditText编程方式添加.

  1. 创建一个TextInputLayout 没有EditText.以编程方式或通过XML通胀 - 无关紧要,但必须是空的.
  2. 创建EditText并将其文本设置为您需要的任何内容.
  3. 添加EditTExtTextInputLayout.

这是一个例子:

TextInputLayout til = (TextInputLayout) findViewById(R.id.til);
til.setHint(R.string.hint);

EditText et = new EditText(getContext());
et.setText(value);

til.addView(et);
Run Code Online (Sandbox Code Playgroud)

2015年8月21日更新设计图书馆V23:

使用设计支持库v23, 您可以禁用动画:

只需使用setHintAnimationEnabled方法:

textInputLayout.setHintAnimationEnabled(boolean)
Run Code Online (Sandbox Code Playgroud)

这是Google Tracker上的问题.