为了方便自己以后的查找,于是就写了这个博客,废话就不多说,开始干:

导入: compile ‘com.android.support:appcompat-v7:24.2.1’ compile ‘com.android.support:design:24.2.1’ (最后的版本号最好和上面的V7包的版本号改成一样的,以免报一些不必要的错误)

Design Support Library中有包含8个控件:

1.TextInputLayout

正如上面所描述的,他是一个强大的带提示的MD风格的EditText

布局:

android.support.design.widget.TextInputLayout         android:layout_width=”match_parent” android:layout_height=”wrap_content” app:counterMaxLength=”10” app:counterEnabled=”true” app:errorEnabled=”false” app:hintAnimationEnabled=”true” android:id=”@+id/til_acc”>

    EditText
android:layout_width="match_parent"
android:layout_height="100px"
android:hint="请输入账号"
android:id="@+id/et_acc"/>
/android.support.design.widget.TextInputLayout>

TextInputLayout的带的属性: 1. counterMaxLength  计数器  显示在右下角 2. counterEnabled  是否显示计数器 (true  、false两个值) 3. counterOverflowTextAppearance 当输入的长度大于计算器的大小,则显示最大限度的字体格式 4. hintAnimationEnabled 是否启用hint(提示字体)动画效果 5. errorEnabled 是否显示错误信息 6. errorTextAppearance 错误信息的字体的格式

MainActivity中的代码:

public class MainActivity extends AppCompatActivity {

@InjectView(R.id.btn)
Button btn;www.90168.org
@InjectView(R.id.activity_main)
LinearLayout activityMain;
@InjectView(R.id.et_acc)
EditText etAcc;
@InjectView(R.id.et_pws)
EditText etPws;
@InjectView(R.id.til_acc)
TextInputLayout tilAcc; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.inject(this);
init();
} private void init() {
//EditView 监听
etAcc.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) {
//判断输入中的字符串是否大于 我们计数器设置的大小
if (charSequence.length() > 5){// 大于
//setErrorEnabled 设置true 并且设置显示错误的信息
tilAcc.setErrorEnabled(true);
tilAcc.setError("sssssss");
}else{
//小于 则把setErrorEnabled设置成false
tilAcc.setErrorEnabled(false);
}
}
//输入后的监听
@Override
public void afterTextChanged(Editable editable) { }
});
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
final String acc = etAcc.getText().toString();
final String pws = etPws.getText().toString();
if (!TextUtils.isEmpty(acc) && !TextUtils.isEmpty(pws)) {
Snackbar.make(view, "登录成功", Snackbar.LENGTH_SHORT).show();
}
}
});
}

}

Material Design兼容包的使用的更多相关文章

  1. Android Material Design 兼容库的使用

    Android Material Design 兼容库的使用 mecury 前言:近来学习了Android Material Design 兼容库,为了把这个弄懂,才有了这篇博客,这里先推荐两篇博客: ...

  2. Eclipse导入 appcompat,design兼容包

    从Android studio推出1.0正式版后,就一直在as上开发项目,但是最近要测试一个项目,是eclipse结构,导入as后,是各种报错信息,决定改成eclipse. 其中项目中用到了ppcom ...

  3. 自定义 Material Design风格的提示框

    关闭 自定义 Material Design风格的提示框 2016-04-24 10:55 152人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 其实在14年谷歌 ...

  4. 【Android】AppCompat V21:将 Materia Design 兼容到5.0之前的设备

    AppCompat V21:将 Materia Design 兼容到于5.0之前的设备 本篇文章翻译自Chris Banes(就职于Google,是Android-PullToRefresh,Phot ...

  5. Android5.0新特性——Material Design简介

    Material Design Material Design简介 Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干 ...

  6. 走着官方的教程入门Material Design(一)

    又到期末了,学习下Google的材料设计.写下此文记录自己的同时,分享给需要的同学,若发现文中有什么问题和不对,欢迎指出 使用 Material Design 创建新应用 首先需要使用材料主题 如果是 ...

  7. 聊聊 Material Design 里,阴影的那些事儿!

    当你的设计师要求你在某个 View 上增加阴影效果,那你只需要认真阅读本文,阴影的问题就不再是问题. 一.前言 设计师的世界,与常人不同,有时候想要扁平化的风格,有时候又想要拟物化的风格.而在 Mat ...

  8. 仿知乎app登录界面(Material Design设计框架拿来就用的TexnInputLayout)

    在我脑子里还没有Material Design这种概念,就我个人而言,PC端应用扁平化设计必须成为首选,手当其冲的两款即时通讯旺旺和QQ早就完成UI扁平化的更新,然而客户端扁平化的设计本身就存在天生的 ...

  9. 使用Material Design 应用主题

    自从去年Google推出Material Design这款设计语言后,新的设计规范越来越受开发者们的喜爱,这篇文章包括后续文章就是慢慢的介绍在App中使用Material Design界面主题.动画. ...

随机推荐

  1. jq添加数组

    var array=new Array(); array.push(值); //向数组中添加值 array.shift(值);//向数组中移除值

  2. C和指针 第十六章 标准函数库 本地跳转setjmp.h

    setjmp和longjmp提供一种类似goto语句的机制,但它的作用域不局限于同一个函数的作用域之内.这些函数可以用于深层次的嵌套函数调用链. int setjmp(jmp_buf state); ...

  3. HTML <input type="file">上传文件——结合asp.net的一个文件上传示例

    HTML的代码:(关键是要在form里设置enctype="multipart/form-data",这样才能在提交表单时,将文件以二进制流的形式传输到服务器) 一. <fo ...

  4. php编译 :virtual memory exhausted: Cannot allocate memory

    有时候用vps建站时需要通过编译的方式来安装主机控制面板.对于大内存的VPS来说一般问题不大,但是对于小内存,比如512MB内存的VPS来说,很有可能会出现问题,因为编译过程是一个内存消耗较大的动作. ...

  5. 在Parallel中使用DbSet.Add()发现的一系列多线程问题和解决过程

    发现问题 需求很简单,大致就是要批量往数据库写数据,于是打算用Parallel并行的方式写入,希望能利用计算机多核特性加快程序执行速度.想的很美好,于是快速撸了类似下面的一串代码: using (va ...

  6. I18n问题 国际化

    http://www.cnblogs.com/guaniu/archive/2012/01/18/2325556.html java国际化 1.了解缺省Locale是由操作系统决定的,Locale是由 ...

  7. c++中的继承与初始化

    1.在c++中构造函数.析构函数.=运算符.友元无法继承 2.const 成员.引用成员.类的对象成员没有默认构造函数时,需在类的构造函数初始化列表中对其进行初始化 3.基类无默认构造函数,派生类需在 ...

  8. BZOJ 2086: [Poi2010]Blocks

    Description 每次可以将大于 \(k\) 的一个数 \(-1\), 在左边或右边的数 \(+1\) ,问最大能得到多长的序列每个数都大于等于 \(k\) . Sol 单调栈. 这道题好神啊q ...

  9. 一些有趣的Javascript技巧

    整理一些刷题时学会的小技巧…… 目录: 即大于0又小于0的变量 String.split() 与 正则表达式 缓存的几种方法 初始化一个数组 即大于0又小于0的变量 问题: 设计一个变量val,使得以 ...

  10. hdu1045 DFS

    #include<stdio.h> #include<string.h> int n; int maxx; ][]; ]={,-,,}; ]={,,,-}; ][][];//炮 ...