您的位置:首页 > 移动开发 > Android开发

Android Support Design - TextInputLayout

2015-12-06 23:05 459 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android