MaterialDesign系列文章(十二)TextInputL
2017-11-07 本文已影响36人
笔墨Android
在TextInputLayout官方文档API中描述了它是一种新的继承自LinearLayout的布局,让我们使用时里面只能包含一个EditText或者其子类的控件,该布局可以通过设置hint和Error显示浮动标签.接下来我们看看布局文件
使用方法
XML中的一些属性标签
- app:hintEnable 浮动标签样式是否开启(默认是开启的)
- app:errorEnabled 设置是否显示一个错误信息,布尔值
- app:hintAnimationEnabled 浮动标签显示与隐藏之间有哦一个过度动画(默认是开启的)
- app:hintTextAppearance 设置提示文字的样式(注意这里是运行了动画效果之后的样式,这里要通过主题进行更改)
app:hintTextAppearance="@style/hintAppearance" <style name="hintAppearance" parent="TextAppearance.AppCompat"> <item name="android:textSize">14sp</item> <item name="android:textColor">#ffee00</item> </style>
- app:counterEnabled 是否增加后面的字数统计;但是要设置最大值
- app:counterMaxLength 设置输入的最大值
- app:passwordToggleEnabled 是否显示后面的眼睛图标
- app:passwordToggleDrawable 可以替换眼睛图标成我们自己的
- app:passwordToggleTint 给设置的眼睛图标设置颜色(这个必须在EditText或者其子类中设置** android:inputType="textPassword"**为密码样式的才能看见图标)
- app:passwordToggleTintMode 控制密码可见开关图标的背景颜色混合模式
- app:passwordToggleContentDescription 该功能是为Talkback或其他无障碍功能提供的。
- app:counterOverflowTextAppearance 设置计算器越位后的文字颜色和大小(通过style进行设置的)
- app:counterTextAppearance 设置正常情况下的计数器文字颜色和大小(通过style进行设置的)
- app:errorTextAppearance 错误提示的文字大小和颜色(通过style进行设置的)
这里有一个很重要的问题要注意一下:
- TextInputLayout只能又一个子类,并且这个子类必须是EditText的子类
- android:hint 不要两个都设置,只需要设置一个,如果你要是设置两个的话,两个会重叠放在那里,会导致动画执行了,横杠上还有文字
- 如过你想改变整体的颜色只要重新写一个主题的颜色就可以了
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorAccent">#3498db</item> </style>
一些常见的处理
设置错误的提示信息
TextInputLayout.setError("只是展示下错误的显示样式");
if (!mLayoutTop.getEditText().getText().toString().equals("123456")) {
mLayoutTop.setError("账号信息填写错误");
mInputEditTextTop.setError("只是展示下错误的显示样式");//这个好丑啊,我是不会用了
}
其实这些判断的话,和之前的EditText都是一样的,所以在这里就不说了