1

TextInputLayoutコントロールのフローティング ラベルの色をプログラムで変更したい。

メソッドを使用して検索したところ、解決策しか見つかりませんでしたsetHintTextAppearance。このメソッドはスタイル パラメーターのみを受け入れます。つまり、xml でスタイルを定義し、実行時にそれを使用する必要があります。

これは私が望むものではありません。サーバーの応答に基づいて、実行時に任意の色を設定できるようにしたいと考えています。

クラスをオーバーライドしたり、他の方法を使用したりするなど、他の解決策はありますか?

4

1 に答える 1

0

をカスタマイズするための実装を次に示しますTextInputLayout。お客様の要件に応じて、Stackoverflow の回答の 1 つを変更しました。

final TextInputLayout til = (TextInputLayout) findViewById(R.id.yourTextInputLayout);
til.getEditText().setTypeface(tf);
try {
    final Field cthf = til.getClass().getDeclaredField("mCollapsingTextHelper");
    cthf.setAccessible(true);
    final Object cth = cthf.get(til);
    final Field tpf = cth.getClass().getDeclaredField("mTextPaint");
    tpf.setAccessible(true);
    ((TextPaint) tpf.get(cth)).setColor(getResources().getColor(R.color.hint_color));
} catch (Exception ignored) {}
于 2016-05-06T11:45:49.977 に答える