Android学习笔记——TextInputLayout
来源:互联网 发布:php添加自定义菜单 编辑:程序博客网 时间:2024/06/04 21:08
Google为了统一Android系统的视觉和使用体验而提出的一个新的标准,这就是Android Design。为了让旧的系统也能兼容新的标准,Google提供了Android Design Support Library包,在此包中,Android提供了很多新的控件。而TextInputLayout正是来自于Android Design Support Library包。
TextInputLayout是一个新的布局,从继承树上看,它继承自LinearLayout,但是它并不支持android:orientation属性,因为TextInputLayout和ScrollView一样,只能在其中迁入唯一的控件。另外从TextInputLayout这个布局的名称可以猜出,这是一个专门针对文本输入动作而设计的布局。所以TextInputLayout一般是EditText或者AutoCompleteTextView这样的控件,TextInputLayout为这些控件提供了体验更好的显示和体验效果。
这里以一个包含EditText的示例,示范一下TextInputLayout的用法和效果。其布局文件如下:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:counterEnabled="true"
app:counterMaxLength="5"
app:hintAnimationEnabled="true"
app:counterOverflowTextAppearance="@android:style/TextAppearance.DeviceDefault.Large">
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:maxLines="1"
android:hint="@string/prompt_password"
android:singleLine="true" />
</android.support.design.widget.TextInputLayout>
其中的app是为了使用Android Design Support Library包提供的新属性,而进行的一个申明,只需要在布局文件的根元素上引入以下的命名空间即可。
xmlns:app="http://schemas.android.com/apk/res-auto"
布局文件设置完毕,运行效果如下图所示:
从运行结果可以看到,视觉效果明显比单纯的只用EditText好了不少。这里TextInputLayout做了一下几件事:
- 自动计算出一个Padding,为动画,错误信息以及字数统计留出足够的显示空间。
- 当EditText获取到焦点时,以动画的方式,将EditText中的hint移动到左上方,避免了单独使用EditText时,提示信息在获取到焦点后就不显示的糟糕体验。
- 统计EditText字数,并动态更新显示。
在TextInputLayout中,重要的属性有以下几个:
- counterEnabled:是否启用计数器
- counterMaxLength:启用计数器时,最大字数限制(仅仅用做显示)
- counterOverflowTextAppearance:当字数超出计数器的最大限制时的字体格式
- hintAnimationEnabled:是否启用hint动画效果
- errorEnabled:是否显示错误信息
- errorTextAppearance:错误信息的字体格式
- Android学习笔记——TextInputLayout
- Android学习笔记——TextInputLayout
- 【进阶篇】Android学习笔记——TextInputLayout
- Android 5.0新控件——TextInputLayout
- 学习TextInputLayout
- Android进阶——Material Design新控件之TextInputLayout
- Android开发——Material Design系列之TextInputLayout
- Android TextInputLayout
- android TextInputLayout
- EditText辅助控件—TextInputLayout
- Android开发笔记(一百三十八)文本输入布局TextInputLayout
- Android学习之Design Support Library中TextInputLayout的使用
- TextInputLayout的学习
- Design Support Library —— TextInputLayout
- 一天一个控件——TextInputLayout
- Android Design Support Library使用详解——TextInputLayout与TextInputEditText
- Android Design Support Library使用详解——TextInputLayout与TextInputEditText
- Android Support Design - TextInputLayout
- 图像检索库yael的安装
- JakeWharton的timber自动生成Tag原理
- nginx透传自定义带下划线请求头
- 记录一次数据库Job不定时执行的问题
- 奇偶规则VS非零环绕规则
- Android学习笔记——TextInputLayout
- coreboot基础——基础流程
- java多线程入门(一)
- TextView中动态显示系统时间
- Intent可以传递的数据类型
- Android Studio 使用笔记:Git 的配置和第一次提交到仓库
- MySQL快速入门12----删除数据 & 备份还原 & 视图 & 事务 & 触发器
- Hadoop Hive UDTF教程
- 树结构练习——排序二叉树的中序遍历 sdut oj(2128)