1. 使用
build.gradle
中添加依赖
compile 'com.android.support:design:25.1.0'
2. 布局文件
<android.support.design.widget.TextInputLayout
android:id="@+id/til_username"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/et_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/username" />
</android.support.design.widget.TextInputLayout>
3. 添加图标
<android.support.design.widget.TextInputLayout
android:id="@+id/til_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/til_password">
<android.support.design.widget.TextInputEditText
...
android:drawableLeft="@drawable/selector_ic_account_circle"
android:drawablePadding="4dp"
android:drawableStart="@drawable/selector_ic_account_circle"
.../>
</android.support.design.widget.TextInputLayout>
其中,selector_ic_account_circle.xml
内容如下,指定输入框获取焦点和未获取焦点的图标样式,两个图标除颜色外其余相同,图标的制作过程参见 Android 使用 Material icons
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@drawable/ic_account_circle_selected_24dp"/>
<item android:state_focused="false" android:drawable="@drawable/ic_account_circle_24dp"/>
</selector>
app:counterEnabled=”true” 可显示输入字数
app:counterMaxLength=”11” 可设置最大可输入字数
对于密码而言,可加入app:passwordToggleEnabled="true"
以显示/隐藏密码
更多可选属性请参考 TextInputLayout
4. 添加错误提示
TextInputLayout til_username = (TextInputLayout) findViewById(R.id.til_username);
// 添加错误提示
til_username.setError("用户名不能为空");
// 取消错误提示
til_username.setErrorEnabled(false);