TextInputLayout - 动态设置浮动文本颜色

时间:2016-05-06 11:24:47

标签: java android textinputlayout

我想以编程方式更改TextInputLayout控件的浮动标签的颜色。

我搜索过并且只使用方法setHintTextAppearance找到了解决方案。此方法仅接受样式参数,这意味着我必须在xml中定义样式并在运行时使用它。

这不是我想要的。我希望能够根据服务器响应在运行时设置任何颜色。

是否有其他解决方案,例如重写类或使用其他方法?

1 个答案:

答案 0 :(得分:0)

以下是自定义TextInputLayout的实现。我根据您的要求修改了Stackoverflow的一个答案:

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) {}