17

設計支援ライブラリ 22.2.1で使用TextInputLayoutしています。

プログラムでの値を設定し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> 

私の中で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");
   }

誰かが回避策を知っていますか?

ここに画像の説明を入力

4

4 に答える 4

18

現在、この動作を回避する唯一の方法は、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);

2015 年 8 月 21 日更新、デザイン ライブラリ V23:

デザイン サポート ライブラリ v23 を使用すると、アニメーションを無効にすることができます

setHintAnimationEnabledメソッドを使用するだけです:

textInputLayout.setHintAnimationEnabled(boolean)

Google Trackerの問題はこちら。

于 2015-07-24T14:04:19.543 に答える