java - TextInputLayout - 动态设置 float 文本颜色

标签 java android textinputlayout

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

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

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

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

最佳答案

这里是自定义 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) {}

关于java - TextInputLayout - 动态设置 float 文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37071173/

相关文章:

java - 哪些代码折叠插件适用于 Eclipse 3.6?

java - 在运行 SonarQube 和扫描仪时,我得到 "insufficient memory for JRE to continue"

java - java工厂模式实现中的错误

android - TextInputLayout 错误文本有一些额外的空间,但另一个项目甚至没有相同的样式

java - 抽象基 bean 类

android - 共享首选项未保存

android - 查找 DEVICE_NAME.kl 的设备名称

android - SeekBar setProgress 破坏次要进度

Android TextInputLayout 提示与 EditText 提示重叠

android - 在运行 5.1.1 的 Oppo F1S 中点击 TextInputLayout 崩溃