私は 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
メソッドが追加されましたここにドキュメント設定することができますこの新しい属性false
XML で に設定し、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 サポート ライブラリに依存しているため、デザイン ライブラリの依存関係を追加すると、これらが自動的に含まれることに注意してください。