android_design support library_TextInputLayout
来源:互联网 发布:图像算法是什么 编辑:程序博客网 时间:2024/06/05 14:53
1、综述
Design Support Library包含8个控件,具体如下:
2、TextInputLayout控件
在MD中,使用TextInputLayout将EditText进行了封装,提示信息会变成一个显示在EditText之上的floating label,这样用户就始终知道他们现在输入的是什么,而且过度动画是平滑的。还可以在下方通过setError设置Error提示。
注意项: TextInputLayout控件和LinearLayout完全一样,它只是一个容器。跟ScrollView一样,TextInputLayout只接受一个子元素。子元素需要是一个EditText元素。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
<android.support.design.widget.TextInputLayout android:id="@+id/usernameWrapper" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/username" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textEmailAddress" android:hint="Username"/> </android.support.design.widget.TextInputLayout>
TextInputLayout的错误处理简单快速。需要的方法是setErrorEnabled和setError。
setError设置一个红色的错误消息,显示在EditText的下面。如果传入的参数为null,错误消息将清空。并且它会改变整个EditText控件为红色。如果错误功能未开启但是你调用了传入非null参数的setError,那么setErrorEnabled(true)将自动被调用。
@OnClick({R.id.btn}) public void onClick(View v) { switch (v.getId()) { case R.id.btn: hideKeyboard(); String username = usernameWrapper.getEditText().getText().toString(); String password = passwordWrapper.getEditText().getText().toString(); boolean flag = true; if (!validateEmail(username)) { usernameWrapper.setError("Not a valid email address!"); flag = false; } else { } if (!validatePassword(password)) { passwordWrapper.setError("Not a valid password!"); flag = false; } if (!flag) { return; } usernameWrapper.setErrorEnabled(false); passwordWrapper.setErrorEnabled(false); doLogin(); break; default: break; } }
setErrorEnabled开启错误提醒功能。这直接影响到布局的大小,增加底部padding为错误标签让出空间。在setError设置错误消息之前开启这个功能意味着在显示错误的时候布局不会变化。
最后你还可以改变TextInputLayout控件的颜色。默认AppCompact会把它设置成绿色的,但是很有可能这个颜色会和你的颜色主题(color palette)冲突。谷歌把Design Support Library写的很好。每一个控件的颜色都是直接通过主题颜色绘制的,在 style.xml 中指定。打开它添加colorAccent 到主题以改变表单的颜色。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorAccent">#3498db</item></style>
- android_design support library_TextInputLayout
- android_design support library_FloatingActionButton
- android_design support library-Snackbar
- android_design support library_TabLayout
- Cal2010 Support
- xchat support
- uWorldCup Support
- Need support
- support chinese
- Metasploit Support
- jQuery.support
- UBIFS Support
- support package
- support生活
- Support Library
- android.support
- unread support
- Support Library
- 详解java序列化(二)
- [第三方]1000个常用的iOS库
- MSSQL 2008自动备份数据库
- UpdateData用法解释
- [从头学数学] 第165节 投影与视图 小结与复习题
- android_design support library_TextInputLayout
- ajax跨域的解决办法
- 两个div并列显示
- 使用Lucene.Net实现全文检索
- 随笔知识1
- Java类的初始化
- android 6.0 logcat机制(一)java层写log,logd接受log
- 【BZOJ1624】[Usaco2008 Open] Clear And Present Danger 寻宝之路【Floyd】
- ListView/GridView 双列/多列显示