Android Support Design - TextInputLayout

来源:互联网 发布:过梁算法 编辑:程序博客网 时间:2024/06/07 23:41

TextInputLayout作为一个父容器控件,包装了新的EditText。通常,单独的EditText会在用户输入第一个字母之后隐藏 hint提示信息,但是现在你可以使用TextInputLayout 来将EditText封装起来,提示信息会变成一个显示在EditText之上的floating label,这样用户就始终知道他们现在输入的是什么。

注意
- TextInputLayout不能单独使用,需要包裹EditView组件。
- TextInputLayout的一些属性可以通过xml来设置,例如app:errorEnabled="true"
- hint可以设置给EditText,与TextInputLayout.setHint()设置同样效果.
- error信息只能设置给与TextInputLayout,若设置给EditText,TextInputLayout没有任何变化
- 如果使用app:errorEnabled="true"来开启error显示,EditText下方将会出现error TextView的占位。所以建议在需要显示error时使用代码开启,用完关闭.

设置hint样式

layout.xml

<android.support.design.widget.TextInputLayout    android:id="@+id/til_name"    app:errorEnabled="true"    app:hintTextAppearance="@style/ErrorText"    android:layout_width="match_parent"    android:layout_height="wrap_content">    <EditText        android:id="@+id/et_name"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="请输入您的姓名"/></android.support.design.widget.TextInputLayout>

style.xml

<style name="ErrorText" parent="TextAppearance.AppCompat.Small">    <item name="android:textStyle">bold|italic</item>    <item name="android:textColor">#00ff00</item></style>

设置字数统计-Counter

app:counterEnabled=”true”
app:counterMaxLength=”10”

<android.support.design.widget.TextInputLayout    app:counterEnabled="true"    app:counterMaxLength="10"    android:layout_width="match_parent"    android:layout_height="wrap_content"    >    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="请输入您的邮箱"/></android.support.design.widget.TextInputLayout>

设置Error显示

til_mail= (TextInputLayout) findViewById(R.id.til_mail);et_mail=til_mail.getEditText();et_mail.addTextChangedListener(new TextWatcher() {    @Override    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {    }    @Override    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {    }    @Override    public void afterTextChanged(Editable editable) {        //开启错误显示        til_mail.setErrorEnabled(true);        //设置错误显示        til_mail.setError("Error hint,你没有权限输入。");        til_mail.setErrorEnabled(false);    }});

api url:http://developer.android.com/reference/android/support/design/widget/TextInputLayout.html

0 0
原创粉丝点击