将空错误设置为TextInputLayout

时间:2017-12-10 15:22:41

标签: android android-textinputlayout

我有一个TextInputLayout我想为它设置空错误(我只是想提示颜色和线条颜色为红色)但是当我设置为空时错误没有任何反应我的TextInputLayout不接受它是一个错误,没有任何改变 任何帮助?

and I don't want the error box to appear because I have many input text in vertical linearlayout

并且我不希望出现错误框,因为我在vertical linearlayout中有很多输入文本

1 个答案:

答案 0 :(得分:0)

我已检查setError()的代码,它有以下代码

if (!mErrorEnabled) {
            if (TextUtils.isEmpty(error)) {
                // If error isn't enabled, and the error is empty, just return
                return;
            }

您可以使用此变通方法将线条颜色设为红色

   textInputPassword.setErrorEnabled(true);
   textInputPassword.setError(" "); //white space 

对于浮动提示颜色,可以通过编程方式使用此代码

private void setUpperHintColor(int color) {
    try {
        Field field = textInputLayout.getClass().getDeclaredField("mFocusedTextColor");
        field.setAccessible(true);
        int[][] states = new int[][]{
                new int[]{}
        };
        int[] colors = new int[]{
                color
        };
        ColorStateList myList = new ColorStateList(states, colors);
        field.set(textInputLayout, myList);

        Method method = textInputLayout.getClass().getDeclaredMethod("updateLabelState", boolean.class);
        method.setAccessible(true);
        method.invoke(textInputLayout, true);

    } catch (Exception e) {
        e.printStackTrace();
    }
}