接上篇《Android进阶之光》--Android新特性

No1:

组件:

1)底部工作条-Bottom Sheets

2)卡片-Cards

3)提示框-Dialogs

4)菜单-Menus

5)选择器

6)滑块控件-Sliders

7)进度和动态

8)Snackbar(底部可操作弹出框)与Toast

9)Tab

No2:

Snackbar

包含了文字信息和一个可选的操作按钮

Snackbar.make(activity_main,"标题",Snackbar.LENGTH_LONG)
.setAction("点击事件",new View.OnClickListener(){
@Override
public void onClick(View v){
Toast.makeText(
MainActivity.this,
"Toast",
Toast.LENGTH_LONG).show();
}
}).setDuration(Snackbar.LENGTH_LONG).show();

make第一个参数是View类型的参数,是Snackbar的父控件

No3:

TextInputLayout输入框容器(hint上浮,错误提示下方显示)

效果图

<android.support.design.widget.TextInputLayout
android:id="@+id/t1_username"
android:layout_width="match_parent"
android:layout_height="warp_content"
android:layout_centerInParent="true">
<EditText
android:id="@+id/et_username"
android:layout_width="match_parent"
android:layout_height="warp_content"
android:hint="username"
android:maxLength="25"
android:maxLines="1"/>
</android.support.design.widget.TextInputLayout>
private void login(){
String username = t1_username.getEditText().getText().toString();
String password = t1_password.getEditText().getText().toString();
if(!validateUserName(username)){
t1_username.setErrorEnabled(true);
t1_username.setError("请输入正确的邮箱地址");
}else if(!validatePassword(password)){
t1_password.setErrorEnabled(true);
t1_password.setError("密码数字过少");
}else{
t1_username.setErrorEnabled(false);
t1_password.setErrorEnabled(false);
Toast.makeText(getApplicationContext(),"登陆成功",Toast.LENGTH_SHORT).show();
}
}

No4:

自定义Bahavior

CoordinatorLayout中最经典的设计就是Bahavior,app:layout_behavior="@string/appbar_scrolling_view_behavior"的值对应着的是AppBarLayout.ScrollingViewBehavior。

自定义Behavior分两种方法:

1)定义的View监听CoordinatorLayout里的滑动状态。注意重写onStartNestedScroll()和onNestedPreScroll()方法

2)定义的View监听另一个View的状态变化。注意重写layoutDependsOn()和onDependentViewChanged()方法

然后在联动的布局中加入

app:layout_behavior="com.example.liuwangshu.mooncoordinatorlayout.FooterBehavior"即可

《Android进阶之光》--Material Design的更多相关文章

  1. [置顶] 曙光到来,我的新书《Android进阶之光》已出版

    独立博客版本请点击这里 由来 2016年我开始建立了自己的知识体系,所有的文章都是围绕着这个体系来写,随着这个体系的慢慢成长,开始有很多出版社联系我写书,因为比较看好电子工业出版社,就顺理成章的开始了 ...

  2. 《Android进阶之光》--注解与依赖注入框架

    No1: 标准注解: 1)@Override:覆写 2)@Deprecated:过时 3)@SuppressWarnings:取消警告 4)@SafeVarargs:申明使用了可变长度参数的方法 No ...

  3. 【Android】进入Material Design时代

    由于本文引用了大量官方文档.图片资源,以及开源社区的Lib和相关图片资源,因此在转载的时候,务必注明来源,如果使用资源请注明资源的出处,尊重版权,尊重别人的劳动成果,谢谢! Material Desi ...

  4. [转]Android 5.0——Material Design详解(动画篇)

    Material Design:Google推出的一个全新的设计语言,它的特点就是拟物扁平化. Material Design包含了很多内容,今天跟大家分享一下Material新增的动画: 在Andr ...

  5. 《Android进阶之光》--Android新特性

    Android 5.0新特性 1)全新的Material Design设计风格 2)支持多种设备 3)全新的通知中心设计--按照优先级显示 4)支持64位ART虚拟机 5)多任务视窗Overview ...

  6. Android进阶之光-第1章-Android新特性-读书笔记

    第 1 章 Android 新特性 1.1 Android 5.0 新特性 1.1.1 Android 5.0 主要新特性 1. 全新的 Material Design 新风格 Material De ...

  7. 《Android进阶之光》--Dagger2

    No1: Project的build.gradle文件添加 buildscript{ dependencies{ ...classpath 'com.neenbedankt.gradle.plugin ...

  8. 《Android进阶之光》--事件总线

    No1: EventBus三要素: 1)Event:事件 2)Subscriber:事件订阅者 3)Publisher:事件发布者 No2: EventBus的4种ThreadMode(线程模型): ...

  9. 《Android进阶之光》--ButterKnife

    No1: 添加依赖库 Project的build.gradle文件添加 buildscript{ ... dependencies{ ... classpath 'com.neenbedankt.gr ...

随机推荐

  1. AES加解密算法

    直接粘代码,该类是基于微信公众号消息加密解密所提供的PHP DEMO改造而来,目前使用于彬彬大学APP接口token校验中. php的mcrypt 扩展已经过时了大约10年,并且用起来很复杂.因此它被 ...

  2. 运维数据库平台~inception审核规则详解

    ---恢复内容开始--- 一 简介:这次我们来介绍最核心的审核功能 二 讲解:简单来说 inception就是mysql的二次过滤,何谓二次过滤,我们知道,mysql本身都有自己的审核规则,为业界所通 ...

  3. RunLoop 原理和核心机制

    搞iOS之后一直没有深入研究过RunLoop,非常的惭愧.刚好前一阵子负责性能优化项目,需要利用RunLoop做性能优化和性能检测,趁着这个机会深入研究了RunLoop的原理和特性. RunLoop的 ...

  4. log4j日志日记记录使用教程

    注意:每次引入Logger的时候注意引入的jar包,因为有Logger的包太多了...... Logger必须作为类的静态变量使用.原因如下: 1 使用static修饰的属性是归这个类使用的2 也就是 ...

  5. Linux的capability深入分析(1)【转】

    转自:https://blog.csdn.net/wangpengqi/article/details/9821227 一)概述: )从2.1版开始,Linux内核有了能力(capability)的概 ...

  6. Linux 调优方案, 修改最大连接数(ulimit命令)【转】

    转自:http://blog.csdn.net/liangxiaozhang/article/details/8363435 Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源 ...

  7. nodejs的 new String

    已知rwo4的记录中baitaiid是001// row4为jhlist开始循环结果 for(var i=0;i<row4.length;i++) { var baiTaiId=new Stri ...

  8. 通达OA2008从windows环境移植到linux部署手册

    通达OA2008从windows环境移植到linux中(centos5.5及以上版本) OA系统拓扑图: 环境搭建(安装lamp环境) 1.安装xampp集成lamp包xampp-linux-1.6. ...

  9. discuz安装:mysqli_connect()不支持advice_mysqli_connect

    原文:http://blog.csdn.net/changzhi1990/article/details/40983247 php -m 输出: PHP Warning: PHP Startup: U ...

  10. jmeter之使用代理录制脚本

    从loadrunner到jmeter,录制压力测试脚本好像都只支持IE,近来才知道jmeter还有自带的录制脚本元件, 且支持IE.Chrome及Firefox等多种浏览器.这里就记录一下通过jmet ...