GIthub地址:https://github.com/rengwuxian/MaterialEditText#features

使用文档:

在android新推出的Material Design中对文本输入框的样式提供了标准,并且在AppCompat v21 中提供了Material Design的空间外观支持,如下图:

不过该控件在使用的过程中比较繁琐,需要通过为控件定制theme的方式来实现自定义控件颜色,并且并没有提供Material Design中提到的特性,因此,为了使用实现该特性效果,我们可以使用rengwuxian在github推出的库MaterialEditText.来实现

使用方法:

首先引用库
compile ‘com.rengwuxian.materialedittext:library:2.1.4’

基本使用

<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Basic"/>
  • 1
  • 2
  • 3
  • 4

自定义颜色

修改输入的字体颜色

  app:met_baseColor="#0056d3"
  • 1

  • 修改输入框的颜色
app:met_primaryColor="#982360"
  • 1

  • 在Material Design中另一个新特新就是在EditText输入时,hint内容将缩小位移到输入框上方
    而在MaterialEditText中同样实现了该功能Floating Label
 app:met_floatingLabel="normal"
  • 1


app:met_floatingLabel="highlight"
  • 1
  • 2
  • 3

app:met_floatingLabelText="XXX"
  • 1
  • 2

met_floatingLabelText方法需要配合上面两个参数才能生效

 <com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:met_baseColor="#0056d3"
app:met_primaryColor="#982360"
app:met_floatingLabelText="aaaaaa"
app:met_floatingLabel="normal"
android:hint="Basic"/>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9


底部省略号

当设置底部省略号后,控件会在文字向左滚动时,在底部显示一个三个点的胜率号,这个方法会自动将android:singleLine设置为true

 app:met_singleLineEllipsis="true"
  • 1

字符数限制

设置字符数限制后,控件右下角会显示已输入字符数和最大字符数的角标,并在超过限制后显示警告色(默认为红色).

//设置警告色:
app:met_errorColor="#000000" //设置最多字数和最小字数 app:met_minCharacters="5"
app:met_maxCharacters="10"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

  • Helper Text和Error Text
    helper Text 通过xml中
app:met_helperText="Integer"
  • 1

Error Text需要动态调用
setError(CharSequence error)

  • 正则表达式检查:
validationEditText.isValid("\\d+");
  • 1
  • 带有报错字符串的正则表达式检查:
validationEditText.validate("\\d+", "Only Integer Valid!");
  • 1
  • 自定义accent typeface 字体
app:met_accentTypeface="fonts/Roboto-LightItalic.ttf"
  • 1

列表内容

Hide UnderLine
删除默认的下划线

app:met_hideUnderline="true"
  • 1

字符串检查

检查后,如果有错,将自动调用 setError() 方法来提示错误。

单一条件检查:

et.validateWith(new RegexpValidator("Only Integer Valid!", "\\d+"));
  • 1

复合条件检查:

et.addValidator(new CustomValidator1())
.addValidator(new CustomValidator2())
.addValidator(new RegexpValidator("Only Integer Valid!", "\\d+"));
  • 1
  • 2
  • 3

放置图片

在输入框左右放置图片,默认图片和输入框之间的距离为16dp
可以通过met_iconPadding设置

app:met_iconLeft="@mipmap/ic_launcher"
app:met_iconRight="@mipmap/ic_launcher"
  • 1
  • 2

显示清空输入框btn
app:met_clearButton= “true”

  • 全部参数
  • 通用颜色
    met_baseColor: 底部横线和所有文字在无焦点状态的基础色。默认为黑色。
    met_primaryColor: 底部横线和 Floating label 的高亮色(如果 met_floatingLabel 设置为 highlight 的话)。默认使用 baseColor。
    met_textColor: 和自带的 android:textColor 作用相同。换用这个就好。
    met_textColorHint: 和自带的 android:textColorHint 作用相同。换用这个就好。
    met_underlineColor: 自定义底部横线的颜色。
    -Floating label
    met_floatingLabel: Floating label 应该怎样被展示。选项有:none, normal, highlight。 默认是 none.
    met_floatingLabelText: 自定义 floating label 的文字。
    met_floatingLabelTextSize: Floating label 的字体大小。默认为 12sp。
    met_floatingLabelTextColor: Floating label 的字体颜色。默认为半透明的 baseColor.
    met_floatingLabelPadding: Floating label 和主文字区域的间隔。
    met_floatingLabelAnimating: 是否使用动画来显示和消失 floating label 。默认为 true 。
    met_floatingLabelAlwaysShown: 是否总是显示 Floating label 。默认为 false 。
  • 字数限制
    met_minCharacters: 限制的最少字数。默认为0。
    met_maxCharacters: 限制的最大字数。0为无限制。默认为0.
    -Helper/Error text
    met_helperText: 底部的 helper text。
    met_helperTextAlwaysShown: 是否总是显示 helper text, 而不仅仅是在获得焦点状态时。默认为 false。
    met_helperTextColor: Helper text 的字体颜色。
    met_errorColor: Error text 的字体颜色。
    met_bottomTextSize: 底部文字(Helper/Error text)的字体大小。默认为12sp。
    met_minBottomTextLines:底部为文字预留的行数,不管是否有 Helper/Error text 正在显示。
  • 字体(Typeface)
    met_typeface: 主文字的字体.
    met_accentTypeface: 辅助文字的字体.
    Material Design 风格的左右图标
    met_iconLeft: 左边的图标.
    met_iconRight: 右边的图标.
    met_iconPadding: 图标和主区域之间的padding。默认为16dp, 遵守 Google’s Material Design Spec 中的建议.
  • Others
    met_hideUnderline: 是否隐藏底部横线。默认为 false。
    met_autoValidate: 是否自动检查字符串。默认为 false。
    met_singleLineEllipsis: 是否在文字超长时显示底部的省略号。默认为 false。
    met_clearButton: 是否显示用来清空文字的 Clear button 。默认为 false。

好用的开源库(一)——MaterialEditText的更多相关文章

  1. 100个Github上Android开源库

    项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, ...

  2. Android主流UI开源库整理(转载)

    http://www.jianshu.com/p/47a4a7b99364 标题隐含了两个层面的意思,一个是主流,另一个是UI.主流既通用,一些常规的按钮.Switch.进度条等控件都是通用控件,因此 ...

  3. GitHub上排名前100的Android开源库介绍(来自github)

    本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍,至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果,然后过滤了 ...

  4. GitHub Top 100的Android开源库

    摘要: 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择「Best M... 本项目主要对目前 GitH ...

  5. GitHub 上排名前 100 的 Android 开源库进行简单的介绍

    若有任何疑问可通过邮件或微博联系我 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开 ...

  6. GitHub开源库排名一百的简单介绍,值得收藏!

    GitHub Android Libraries Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitHub ...

  7. 我的Android进阶之旅】GitHub 上排名前 100 的 Android 开源库进行简单的介绍

    GitHub Android Libraries Top 100 简介 本文转载于:https://github.com/Freelander/Android_Data/blob/master/And ...

  8. <Android开源库 ~ 1> GitHub Android Libraries Top 100 简介

    转载自GitHub Android Libraries Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitH ...

  9. GitHub上排名前100的Android开源库介绍

    GitHub上排名前100的Android开源库介绍 文章来源: http://www.open-open.com/news/view/1587067#6734290-qzone-1-31660-bf ...

  10. Android(常用)主流UI开源库整理

    这几天刚做完一个项目..有点空余时间,就想着吧这一两年做的项目中的UI界面用到的一些库整理一下.后来想了一下,既然要整理,就把网上常用的 AndroidUI界面的主流开源库 一起整理一下,方便查看. ...

随机推荐

  1. PHP实现微信模板消息发送给指定用户

    使用公众号的模板消息功能,必须是认证过的服务号,需要发送微信号的openid,同一微信号在不同公众号下的openid是不同的,在公众号下是唯一的,获取不到微信号 进入公众平台  功能->模板消息 ...

  2. react基础篇 整理(一)

    备注不知道为啥不能到出图片,详细知识自己百度一下就可以了,很简单的.画这个是为了更好的梳理知识,公司有个App项目,项目可控,所以尝试一下用React-native去做一下试试.

  3. python 模型 ORM简介

    Django之ORM (Object Relational Mapping(ORM)一.ORM介绍1.ORM概念 对象关系映射模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.2.OR ...

  4. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5)

    八.KVM 这一步,像virsh start命令一样,将虚拟机启动起来了.虚拟机启动之后,还有很多的步骤需要完成. 步骤38:从DHCP Server获取IP 有时候往往数据库里面,VM已经有了IP, ...

  5. JSP的执行原理

    在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个Servlet.而这个引擎本身也是一个Servlet.JSP的运行过程如下所示: (1)JSP引擎先把该JSP文件转换成一个Java ...

  6. [Swift]LeetCode797. 所有可能的路径 | All Paths From Source to Target

    Given a directed, acyclic graph of N nodes.  Find all possible paths from node 0 to node N-1, and re ...

  7. [Swift]LeetCode975. 奇偶跳 | Odd Even Jump

    You are given an integer array A.  From some starting index, you can make a series of jumps.  The (1 ...

  8. 数据攻略●R语言自述

    (注明:以下文章均在Linux操作系统下执行) 一.R语言简介 R语言是用于统计分析,图形表示和报告的编程语言和软件环境.R语言由Ross Ihaka和Robert Gentleman在新西兰奥克兰大 ...

  9. java设计模式(2)---六大原则

    设计模式之六大原则 这篇博客非常有意义,希望自己能够理解的基础上,在实际开发中融入这些思想,运用里面的精髓. 先列出六大原则:单一职责原则.里氏替换原则.接口隔离原则.依赖倒置原则.迪米特原则.开闭原 ...

  10. Java 多线程(五)—— 线程池基础 之 FutureTask源码解析

    FutureTask是一个支持取消行为的异步任务执行器.该类实现了Future接口的方法. 如: 取消任务执行 查询任务是否执行完成 获取任务执行结果(”get“任务必须得执行完成才能获取结果,否则会 ...