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上的显示大体上为如下,当然只是外面的框的部分

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

在所有desigin包下面的组件都实现了自己的Behavior来相应不同的过渡效果,Behavior是整个desigin包的核心元素之一。但是要想自己的View也能相应这样的效果,就需要实现自己的Behavior,具体的方法可以在CodePath上了解。

更多相关文章

  1. android笔记
  2. 设置Android(安卓)app背景图片(Android(安卓)studio)
  3. 让Android支持透明状态栏
  4. android:layout_gravity和android:gravity属性的区别
  5. Android样式基础--shape篇
  6. Android中的一些样式设置
  7. android中的文本框
  8. android:padding和android:margin的区别
  9. android:layout_gravity和android:gravity的区别

随机推荐

  1. Android基于开源项目的WheelView的时间、
  2. 让android的webview中的按钮,触发事件,也能
  3. Android(安卓)中级学习心得
  4. Android菜鸟日记25-android反编译
  5. Android开发艺术探索 - 第11章 Android的
  6. android WebView的使用详解
  7. Android学习群群内分享:Android面试中的那
  8. zongjie
  9. Android攻击方式与安全分析
  10. Windows Phone之于Android的基因进化(认