TextInputLayout以编程方式更改颜色

时间:2017-12-12 15:43:22

标签: android styles themes android-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();
        }
    }

1 个答案:

答案 0 :(得分:0)

试试这个

textInputLAyout.getEditText().getBackground().mutate().setColorFilter(your_color), PorterDuff.Mode.SRC_ATOP);