###介绍

Layout which wraps an {@link android.widget.EditText} (or descendant) to show a floating label
when the hint is hidden due to the user inputting text.

Also supports showing an error via {@link #setErrorEnabled(boolean)} and
{@link #setError(CharSequence)}, and a character counter via
{@link #setCounterEnabled(boolean)}.

翻译:
TextInputLayout需要包裹一个EditText来实现当用户输入文本的时候,将hint作为一个浮动的标签显示的效果。使用比较多大的两个方法:
setError(CharSequence) - > 使能错误消息提示
对应属性值:app:errorEnabled=“true”
setCounterEnabled(boolean) -> 使能字符长度显示
对应属性值:app:counterEnabled=“true”


###类介绍
TextInputLayout的父类是LinearLayout,源码位置
frameworks/support/design/src/android/support/design/widget/TextInputLayout.java
类结构视图
这里写图片描述

方法 意义
setTypeface 设置tf字体
getEditText 获取EditText视图
setHint 设置Hint内容
setHintEnabled 使能hint
setHintTextAppearance 设置hint的Text Style
setErrorEnabled 使能错误提示
setError 设置错误提示消息
setCounterEnabled 使能计数
setCounterMaxLength 设置输入框最大长度
setHintAnimationEnabled 使能Hint浮动动画,默认为true

总体来看,用的比较多的就是错误消息提示和计数功能,对字体的一些设置和TextView和EditText使用方法类似,这个布局的特点就是视觉感受和用户体验比简单的输入框文本框提升很多。符合google的导向,但是很多apk中很少看到人使用,应该大家有更炫酷的方法。


###具体使用
布局文件
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>                                    

代码内容
MainActivity.java

package mraz.com.tabdemo;import android.os.Bundle;import android.support.design.widget.TextInputLayout;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        final TextInputLayout userTextInputLayout = (TextInputLayout) findViewById(R.id.til_username);        TextInputLayout passTextInputLayout = (TextInputLayout) findViewById(R.id.til_password);        Button showErrorBtn = (Button) findViewById(R.id.bt_showerror);        showErrorBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                userTextInputLayout.setError("UserName is not correct!");            }        });        Button clearErrorBtn = (Button) findViewById(R.id.bt_clearerror);        clearErrorBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                userTextInputLayout.setError("");            }        });    }}

代码上就不上注释了,如果有疑问请提出来,不过代码很简洁,应该问题不大。

###实际效果
这里写图片描述
这里写图片描述

更多相关文章

  1. android连续按两次返回退出程序(完整代码)
  2. Android Java代码执行adb Shell命令
  3. android EditText 不自动弹出键盘的方法
  4. 探寻 Android 代码抄袭细节,情节还不算严重
  5. Android Studio ADB响应失败解决方法
  6. Android Looper中的MessageQueue消息处理机制
  7. Android清除本地数据缓存代码案例
  8. Android的SMS短消息格式和主要字段
  9. 【Android学习笔记】AutoCompleteTextView(数组在代码中)

随机推荐

  1. android UI进阶之弹窗的使用(2)--实现通讯
  2. Android深入浅出视频中的总结
  3. Android(安卓)中的WiFi学习笔记(转载)
  4. ionic3编译到Android(安卓)相关配置
  5. android 关于程序升级问题
  6. android发送邮件
  7. android 之 广播相关
  8. Android(安卓)ApiDemos示例解析(9):App->A
  9. Android(安卓)Framework内核之旅
  10. android加载字体内存泄漏的处理方法