接上篇《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. JavaScript之Array/数组小结

    MDN-Array的属性/方法:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Arr ...

  2. ABAP知识点笔记

    1,获取光标所在行 READ TABLE TD_ALV_DATA INTO TH_ALV_DATA INDEX RS_SELFIELD-TABINDEX. 2,获取alv可编辑单元格内容 DATA: ...

  3. 转:Delphi中使用比较少的一些语法

    http://www.cnblogs.com/Murphieston/p/5577836.html 本文是为了加强记忆而写,这里写的大多数内容都是在编程的日常工作中使用频率不高的东西,但是又十分重要. ...

  4. pytorch官网上两个例程

    caffe用起来太笨重了,最近转到pytorch,用起来实在不要太方便,上手也非常快,这里贴一下pytorch官网上的两个小例程,掌握一下它的用法: 例程一:利用nn  这个module构建网络,实现 ...

  5. Ubuntu 16.04配置国内高速apt-get更新源【转】

    转自:https://blog.csdn.net/twang0x80/article/details/79782753 Ubuntu 16.04下载软件速度有点慢,因为默认的是从国外下载软件,那就更换 ...

  6. Hyper-V虚拟机上安装一个图形界面的Linux系统

    这件事情呢,一直想干但又觉得太陌生和麻烦,无奈现在到了非装不可的时候,只好硬着头皮去装.在此之前,我不懂什么叫做虚拟机,linux也接触甚少.经过3天的折腾,终于装好了带有图形界面的linux(字符版 ...

  7. vue系列之MVVM框架

    当数据发生变化时,ViewModel就会检测到,然后通知相应的View改变 当用户操作View时,ViewModel就会检测到,然后Model,修改相应的数据,最终实现双向绑定 适用场景:针对具有复杂 ...

  8. STM32应用实例五:与SHT1X温湿度传感器通讯

    在这次项目开发中应用到了SHT1X温湿度传感器,该系列有SHT10.SHT11和SHT15,属于Sersirion温湿度传感器家族中的贴片封装系列.包括一个电容性聚合体测湿敏感元件.一个用能隙材料制成 ...

  9. Oracle查询表主键、外键

    项目中用到的一些Sql(oracle下的)总结: 1.查找表的所有索引(包括索引名,类型,构成列) select t.*,i.index_type from user_ind_columns t,us ...

  10. spark简单总结—短小精悍

    Spark是基于内存计算的大数据并行计算框架.因为其基于内存计算,较Hadoop中MapReduce计算框架具有更高的实时性,同时保证了高效容错性和可伸缩性.从2009年诞生于AMPLab到现在已经成 ...