我想以编程方式更改文本输入布局的颜色样式。颜色正在改变任何时刻,因此我需要用从服务器获得的颜色设置下划线的颜色和提示文本。
我可以从另一个答案中使用以下代码更改提示文本颜色,但是我无法更改下划线颜色:
public static void setInputTextLayoutColor(TextInputLayout textInputLayout, @ColorInt int color) {
try {
Field fDefaultTextColor = TextInputLayout.class.getDeclaredField("mDefaultTextColor");
fDefaultTextColor.setAccessible(true);
fDefaultTextColor.set(textInputLayout, new ColorStateList(new int[][]{{0}}, new int[]{ color }));
Field fFocusedTextColor = TextInputLayout.class.getDeclaredField("mFocusedTextColor");
fFocusedTextColor.setAccessible(true);
fFocusedTextColor.set(textInputLayout, new ColorStateList(new int[][]{{0}}, new int[]{ color }));
} catch (Exception e) {
e.printStackTrace();
}
}
尝试此
textInputLAyout.getEditText().getBackground().mutate().setColorFilter(your_color), PorterDuff.Mode.SRC_ATOP);