Android|Android Desigin Library

layout: post
title: Android Desigin Library
date: 2015-09-05
categories: blog
tags: [Android,Desigin]
category: Android
description: 介绍Android支持库中的一些desigin相关的组件
资料参考
-Android官方文档
-Android官方博客
-Inthecheesefactory
-CodePath
1.AppBarLayout
AppBarLayout为LinearLayout的子类,不过不同的是固定是以竖直方向排列。本身实现了许多Desigin相关的特效。
通过给AppBarLayout的child设置app:layout_scrollFlags="scroll|enterAlways"
其中参数的具体意思为:

scroll - 想滚动就必须设置这个。
enterAlways - 实现quick return效果,当向下移动时,立即显示View(比如Toolbar)。如果没有设置,就必须等到该出现的时候才会出现(比如ListView滑到最顶端ToolBar才出现);
exitUntilCollapsed - 向上滚动时收缩View,但可以固定Toolbar一直在上面。
enterAlwaysCollapsed -当你的View已经设置minHeight属性又使用此标志时,你的View只能以最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度。
AppBarLayout在APP上的显示大体上为如下,当然只是外面的框的部分
Android|Android Desigin Library
文章图片
App中的显示 上图中的阴影部分可以通过app:elevation=""来进行设置,默认为0
2.CollapsingToolbarLayout
顾名思义,可以折叠的ToolBar的布局, CollapsingToolbarLayout作用是提供了一个可以折叠的Toolbar,它继承至FrameLayout,给它设置layout_scrollFlags,它可以控制包含在CollapsingToolbarLayout中的控件(如:ImageView、Toolbar)在响应layout_behavior事件时作出相应的scrollFlags滚动事件(移除屏幕或固定在屏幕顶端)。
常用的属性:
contentScrim - 设置当完全CollapsingToolbarLayout折叠(收缩)后的背景颜色。
expandedTitleMarginStart - 设置扩张时候(还没有收缩时)title向左填充的距离。
layout_collapseMode (折叠模式) - 有两个值:
pin - 设置为这个模式时,当CollapsingToolbarLayout完全收缩后,Toolbar还可以保留在屏幕上。
parallax - 设置为这个模式时,在内容滚动时,CollapsingToolbarLayout中的View(比如ImageView)也可以同时滚动,实现视差滚动效果,通常和layout_collapseParallaxMultiplier(设置视差因子)搭配使用。
layout_collapseParallaxMultiplier(视差因子) - 设置视差滚动因子,值为:0~1。
当设置了layout_behavior的控件响应起了CollapsingToolbarLayout中的layout_scrollFlags事件时,ImageView会有视差效果的向上滚动移除屏幕,当开始折叠时CollapsingToolbarLayout的背景色(也就是Toolbar的背景色)就会变为我们设置好的背景色,Toolbar也一直会固定在最顶端。
具体在App中的效果可以为
Google Android Image 3.CoordinatorLayout
作为以上布局的父布局来是用,主要就是控制各个组件之间的协同处理,相互相应。
4.FloatingActionButton
在Google发布官方库之前就以及有很多的类似的组件,比如makovkastar/FloatingActionButton 和 futuresimple/android-floating-action-button
效果图为:
FAB 当然这里的动画效果是自己设置的。
5.NavigationView
使用非常的简单,看官方的实例NavigationView
6.Snackbar
SnackBar的使用方法同Toast几乎一样,但是官方说他更轻量
7.TabLayout
8.TextInputLayout
9.Behavior
【Android|Android Desigin Library】在所有desigin包下面的组件都实现了自己的Behavior来相应不同的过渡效果,Behavior是整个desigin包的核心元素之一。但是要想自己的View也能相应这样的效果,就需要实现自己的Behavior,具体的方法可以在CodePath上了解。

    推荐阅读