TextInputLayout アニメーションを無効にする 質問する

TextInputLayout アニメーションを無効にする 質問する

私は TextInputLayout を使用してフローティング ラベル パターンを実装しています。ただし、EditText でテキストをプログラムで設定すると、ユーザーがクリックした場合と同じように、ラベルがコントロールからラベルに移動するアニメーションが表示されます。

このアニメーションは不要ですが、プログラムで設定することは可能ですか? これが私のコードです:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/root">

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

</android.support.design.widget.TextInputLayout>

onResume では次の操作を実行します:

    TextInputLayout root = (TextInputLayout)findViewById(R.id.root);
    EditText et = (EditText)root.findViewById(R.id.editText1);
    et.setText("Actual text");
    root.setHint("Hint");

ベストアンサー1

サポートライブラリのv23では、setHintAnimationEnabled メソッドが追加されましたここにドキュメント設定することができますこの新しい属性falseXML で に設定し、editText の入力が完了したらプログラムで に設定します。trueまたは、必要に応じてすべてをプログラムで処理します。

したがって、あなたの例では、次のようになります。

TextInputLayout root = (TextInputLayout)findViewById(R.id.root);
root.setHintAnimationEnabled(false);
root.setHint("Hint");

EditText et = (EditText)root.findViewById(R.id.editText1);
et.setText("Actual text");

// later...
root.setHintAnimationEnabled(true);

もちろん、Android SDKマネージャーを開いて、Android サポート ライブラリ23章までAndroid サポート リポジトリまず rev. 17 にアップグレードし、それを build.gradle に追加します:

compile 'com.android.support:design:23.0.0'

デザイン ライブラリは Support v4 および AppCompat サポート ライブラリに依存しているため、デザイン ライブラリの依存関係を追加すると、これらが自動的に含まれることに注意してください。

おすすめ記事