相信我们小伙伴们都用过这个TextInputLayout这个控件,By source Code ,发现它是继承于LinearLayout,关于LinearLayout的东东在这里就不啰嗦啦.我们只关心TextInputLayout自身的属性: TextInputLayout自身的属性
然后当我们在使用TextInputLayout,而且添加了app:counterEnabled 和 app:counterMaxLength属性,里面嵌套着EditText,在代码中,我们给EditText在 addTextWatcher()里面的 onTextChanged()方法里,监听EditText的字符数。这时,当我们运行程序输入的字符串达到最大的counterMaxLength值时,程序就会crash,同时给出如下错误: 即:java.lang.UnsupportedOperationException: Failed to resolve attribute at index 3: TypedValue{t=0x2/d=0x7f01010b a=2} 此时此刻,你的感觉应该是:“农村路也滑,人心更复杂”。 废话不多说了,直接上解决方案: 在 你的value包的styles声明主题Theme部分,加入如下代码: <item name="textColorError">@color/design_textinput_error_color_light</item>或者 使你的theme 继承 Them.Design.*; PS: 这个 textColorError 属性在这里定义是为了能在TextInputLayout的ErrorState下使用,你可以使用自己定义的color值,否则就会crash. 系统中有如下属性可供我们使用: 1.light themes下:
2.dark themes: 注:这些color值AS不会自动提示,需要自己动手.. 最后给个stackOverFlow的链接: 我为这样做感到可耻:我不解决问题,我只是解决方案的搬运工。 努力提高自己才是硬道理。 |
|
来自: 昵称27265735 > 《待分类》