TextInputLayout - динамически устанавливать цвет плавающего текста
Я хочу изменить цвет плавающей метки для TextInputLayout
управлять программно.
Я искал и только нашел решение, используя метод setHintTextAppearance
, Этот метод принимает только параметр стиля, что означает, что мне нужно определить стиль в xml и использовать его во время выполнения.
Это не то, что я хочу. Я хочу иметь возможность устанавливать любой цвет во время выполнения, основываясь на ответе сервера.
Есть ли другое решение, например, переопределение классов или использование других методов?
1 ответ
Вот реализация для настройки вашего TextInputLayout
, Я изменил один из ответов Stackru в соответствии с вашими требованиями:
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) {}