1,app:errorEnabled 属性,
下图是没有设置app:errorEnabled属性的情况(app:errorEnabled默认为false)
下图设置app:errorEnabled属性为true的情况,可以看到内容(我是EditText的内容)下方多出了一块蓝色区域,该区域用于展示错误信息。
上面的两张图是 TextInputLayout 和 EditText都是wrap_content 的情况下,设置了app:errorEnabled属性为true,TextInputLayout就会自动多出一部分区域用于展示错误信息。
然而,当TextInputLayout 设置了一定的高度,足够在下方展示错误信息而不被EditText遮挡时,设置app:errorEnabled属性为true就不会再自动多出一部分区域用于展示错误信息。如下图所示,设置TextInputLayout为100dp
并且可以看到另一个现象(知识点),当TextInputLayout 和 EditText 同时设置hint时,以TextInputLayout 的为准,显示的是设置在TextInputLayout 的提示
并且,在只设置EditText 的hint时,运行到手机上,手动将EditText 的内容清空,提示不出再显示在EditText 中,同时设置TextInputLayout 和 EditText 的提示时,手动将EditText 的内容清空,EditText 的提示会显示在EditText 中
2,总结。。。坑货,
2.1 android:hint="我是提示" 无论设置到 TextInputLayout 还是 EditText 上 效果都是一样的
2.2 app:hintEnabled="true"属性默认是true,如果设置为false,提示就不会”跑到上方“,就像普通的EditText 一样。
2.3 app:hintAnimationEnabled="true",默认也是true的
2.4 app:passwordToggleEnabled="false" 为false,设置为true会显示秘密可见的开关的小图片,也会是EditText 变高很多,就如上下方向加了padding一样, 应该是因为显示密码开关图片的缘故了
3. ConstraintLayout 内嵌套控件
如下图所以,外层的ConstraintLayout 的宽高都是wrap_content,内层的ImageView宽高都是match_parent,而显示却是下面的效果,可以理解为,在ConstraintLayout宽高 是wrap_content 的情况下,内存的match_parent 是不起作用的,这种情况和LinearLayout类似,而外层如果是RelativeLayout,就会充满整个页面。