1

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

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

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

是否有任何其他解决方案,例如覆盖类或使用其他方法?

4

1 回答 1

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) {}
于 2016-05-06T11:45:49.977 回答