我有一个TextInputLayout
我想为它设置空错误(我只是想提示颜色和线条颜色为红色)但是当我设置为空时错误没有任何反应我的TextInputLayout
不接受它是一个错误,没有任何改变
任何帮助?
并且我不希望出现错误框,因为我在vertical linearlayout中有很多输入文本
答案 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();
}
}