textInputlayout编程更改颜色



我想以编程方式更改文本输入布局的颜色样式。颜色正在改变任何时刻,因此我需要用从服务器获得的颜色设置下划线的颜色和提示文本。

我可以从另一个答案中使用以下代码更改提示文本颜色,但是我无法更改下划线颜色:

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);

相关内容

  • 没有找到相关文章

最新更新