今天学习了一个Android Design Support Library 中的TextInputLayout控件,感觉还不错,较之以往的Editetxt,多了几分灵活性,使用也非常easy,故此给大家推荐一下。并记录用法。

首先上图来介绍一下它跟我们以往使用的有什么改变。

这里简单看一下,它多了一个提示功能。一般当EditText输入内容后,hint会消失。

TextInputLayout会在输入内容后。提示就会浮动在EditText上方。

当然也支持错误提示。

以下来看实现方式

加入依赖

    //noinspection GradleCompatible
compile 'com.android.support:design:24.0.0-alpha1'

该怎样实现呢?TextInputLayout作为父布局包括EditText即可了

 <android.support.design.widget.TextInputLayout
android:id="@+id/textInputLayouts"
android:layout_width="match_parent"
android:layout_margin="8dp"
android:layout_height="wrap_content"> <EditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/space_16"
android:hint="请输入password"
android:inputType="textPassword"
android:padding="@dimen/space_16"
android:textColor="@color/grey_800"
android:textSize="@dimen/text_size_14" />
</android.support.design.widget.TextInputLayout>

实现方式非常easy哈。然后该怎样在代码里设置呢?

TextInputLayout主要包括以下几个方法:


1.setHint()。设置提示信息

2.setError(),设置错误提示信息

3.setErrorEnabled(boolean enabled),设置error是否显示

4.getEditText(),获取自布局EditText

5.setCounterMaxLength(int) 设置可输入最大字符数。并在以下进行统计

6.setCounterEnabled(boolean ); 设置是否统计输入字符数

7.setHintAnimationEnabled(boolean) 设置hint动画是否开启。


效果如上。

 tlName = (TextInputLayout) findViewById(R.id.textInputLayout);
tlPwd = (TextInputLayout) findViewById(R.id.textInputLayouts);
tlName.setHint("请输入username");
tlPwd.setHint("请输入password");

String userName = etUserName.getText().toString().trim();
String password = etPassword.getText().toString();
if (TextUtils.isEmpty(userName)) {
tlName.setError("username不能为空");
} else {
tlName.setErrorEnabled(false);
}
if (TextUtils.isEmpty(password)) {
tlPwd.setError("password不能为空");
} else {
tlPwd.setErrorEnabled(false);
}

逻辑嘛。也就是我们寻常写的登陆注冊逻辑。关键点在于加入了setError()。setErrorEnabled()方法。

好啦,就这么多。有个问题在设置setCounterMaxLengt()后。输入超过设置字符数后,会数组越界,不知道哪位大兄弟能够教我,谢谢!

代码下载

http://pan.baidu.com/s/1pKDg2a3

Android学习之Design Support Library中TextInputLayout的使用的更多相关文章

  1. Android Design Support Library: 学习CoordinatorLayout

    简述 CoordinatorLayout字面意思是"协调器布局",它是Design Support Library中提供的一个超级帧布局,帮助我们实现Material Design ...

  2. Android Design Support Library使用详解——TextInputLayout与TextInputEditText

    TextInputLayout 在谷歌的Material Design中,文本输入是这样表现的:当用户点击输入框想要输入文字时,如果输入框是空的,那么它的提示文字(hint)就会变小并且同时移动到输入 ...

  3. Android Design Support Library(2)- TextInputLayout的使用

    原创文章,转载请注明 http://blog.csdn.net/leejizhou/article/details/50494634 这篇文章介绍下Android Design Support Lib ...

  4. 【转】【翻】Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏

    转自:http://mrfufufu.github.io/android/2015/07/01/Codelab_Android_Design_Support_Library.html [翻]Andro ...

  5. Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏

    原文:Codelab for Android Design Support Library used in I/O Rewind Bangkok session--Make your app fanc ...

  6. Android Design Support Library——Navigation View

    前沿 Android 从5.0开始引入了Material design元素的设计,这种新的设计语言让整个安卓的用户体验焕然一新,google在Android Design Support Librar ...

  7. Android Design Support Library使用详解——Snackbar

    Google在2015 I/O大会上,给我们带来了更加详细的Material Design规范,同时也引入了Android Design Support Library,为我们提供了基于Materia ...

  8. Android Design Support Library(三)用CoordinatorLayout实现Toolbar隐藏和折叠

    此文的代码在Android Design Support Library(一)用TabLayout实现类似网易选项卡动态滑动效果代码的基础上进行修改,如果你没有看过本系列的第一篇文章最好先看一看.Co ...

  9. Android Design Support Library(二)用NavigationView实现抽屉菜单界面

    NavigationView在MD设计中非常重要,之前Google也提出了使用DrawerLayout来实现导航抽屉.这次,在Android Design Support Library中,Googl ...

随机推荐

  1. VTK中的装配体(vtkAssembly)

    Actors有时也会组合在一起形成层次结构,当其中的某个Actor运动时,会影响到其他Actor的位置.例如,一个机械手臂可能由上臂.前臂.手腕和末端等部分通过关节连接起来.当上臂绕着肩关节旋转时,我 ...

  2. spring boot mybatis没有扫描jar中的Mapper接口

    只需要在spring boot启动类上加上注解,并指定jar包中接口文件包路径即可 如下: @ComponentScan(basePackages = "com.xx") @Map ...

  3. Oracle下载汇聚

    官方下载oracl软件需要,注册oracle账户.方可下载.... Oracle11.2.0.4 Oracle11.2.0.4 for linux  1-7 http://pan.baidu.com/ ...

  4. [转] 利用BLKTRACE分析IO性能

    在Linux系统上,如果I/O发生性能问题,有没有办法进一步定位故障位置呢?iostat等最常用的工具肯定是指望不上的,[容易被误读的iostat]一文中解释过await表示单个I/O所需的平均时间, ...

  5. 表的复制——sql语句

    SQL Server 复制表结构及数据到新表 select * into 目标表名 from 源表名(要求目标表不存在,因为在插入时会自动创建) 只复制表结构到新表 CREATE TABLE 新表 S ...

  6. 一个死去的网站shige.laiyo.com

    2017年4月份的时候,研一下刚刚开始. 爬了这个网站,现在这个网站已经关闭了,这些爬虫代码也就没用了,面向特定网站爬虫本身就是没有意义的. 爬author import requests from ...

  7. 基于Android的小巫新闻客户端开发系列教程

    <ignore_js_op> 141224c6n6x7wmu1aacap7.jpg (27.51 KB, 下载次数: 0) 下载附件  保存到相册 23 秒前 上传   <ignor ...

  8. 编程实践笔记{Java 线程 并发处理 Webservice}(转)

    http://www.cnblogs.com/mingzi/archive/2009/03/09/1406694.html 1, 保证线程安全的三种方法: a, 不要跨线程访问共享变量 b, 使共享变 ...

  9. JavaScript indexOf() 方法详解

    定义和用法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. 语法 stringObject.indexOf(searchvalue,fromindex) 参数 描述 sea ...

  10. dll版本兼容

    <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <depen ...