Google为了统一Android系统的视觉和使用体验而提出的一个新的标准,这就是AndroidDesign。为了让旧的系统也能兼容新的标准,Google提供了AndroidDesignSupportLibrary包,在此包中,Android提供了很多新的控件。而TextInputLayout正是来自于AndroidDesignSupportLibrary包。

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是为了使用AndroidDesignSupportLibrary包提供的新属性,而进行的一个申明,只需要在布局文件的根元素上引入以下的命名空间即可。

xmlns:app="http://schemas.android.com/apk/res-auto"

布局文件设置完毕,运行效果如下图所示:

【进阶篇】Android学习笔记——TextInputLayout_第1张图片

从运行结果可以看到,视觉效果明显比单纯的只用EditText好了不少。这里TextInputLayout做了一下几件事:

  1. 自动计算出一个Padding,为动画,错误信息以及字数统计留出足够的显示空间。
  2. 当EditText获取到焦点时,以动画的方式,将EditText中的hint移动到左上方,避免了单独使用EditText时,提示信息在获取到焦点后就不显示的糟糕体验。
  3. 统计EditText字数,并动态更新显示。

在TextInputLayout中,重要的属性有以下几个:

  • counterEnabled:是否启用计数器
  • counterMaxLength:启用计数器时,最大字数限制(仅仅用做显示)
  • counterOverflowTextAppearance:当字数超出计数器的最大限制时的字体格式
  • hintAnimationEnabled:是否启用hint动画效果
  • errorEnabled:是否显示错误信息
  • errorTextAppearance:错误信息的字体格式

欢迎转载,转载同时请尊重版权,附上本文原文链接:点击这里

==============================

更多内容,欢迎查看本人博客:林彦君的博客

==============================

更多相关文章

  1. Android学习-五布局之相对布局
  2. android控件布局
  3. [Android]笔记7-RelativeLayout布局
  4. Android的四种基本布局
  5. 2.3.1TextView控件
  6. 【Android】如何让跑马灯跑起来-控件请求焦点
  7. Android控件GridView的使用
  8. android 相对布局中的 控件布局
  9. Android中自定义switch控件样式

随机推荐

  1. 他们只有本硕学历, 却发过了AER, JPE, QJ
  2. 气候经济学能发Nature,Science的三大热点
  3. nature首次出现经济学编辑!想发nature的学
  4. 什么时候需要标准化回归模型中的变量?
  5. 对数vs线性vs二次vs指数形式,到底选择哪种
  6. 机器学习方法出现在AER, JPE, QJE等顶刊
  7. 万字长文述"家庭经济学"进展, 诺奖得主贝
  8. 过去三十年, RCT, DID, RDD, LE, ML, DSG
  9. 空间双重差分法(spatial DID)最新实证pap
  10. 忽略交互效应后果很严重,审稿人很生气!