CoordinatorLayout的使用

使用CoordinatorLayout需要在Gradle加入Support Design Library

compile 'com.android.support:design:22.2.1'

CoordinatorLayout的使用核心是BehaviorBehavior就是执行你定制的动作。在讲Behavior之前必须先理解两个概念:ChildDependency,什么意思呢?Child当然是子View的意思了,是谁的子View呢,当然是CoordinatorLayout的子View;其实Child是指要执行动作的CoordinatorLayout的子View。而Dependency是指Child依赖的View。比如上面的gif图中,蓝色的View就是Dependency,黄色的View就是Child,因为黄色的View的动作是依赖于蓝色的View。简而言之,就是如过Dependency这个View发生了变化,那么Child这个View就要相应发生变化。发生变化是具体发生什么变化呢?这里就要引入BehaviorChild发生变化的具体执行的代码都是放在Behavior这个类里面

app:layout_behavior="com.meizu.coordinatorlayoutdemo.RotateBehavior"/>

怎么使用Behavior呢,首先,我们定义一个类,继承CoordinatorLayout.Behavior<T>,其中,泛型参数T是我们要执行动作的View类,也就是Child。然后就是去实现Behavior的两个方法:

 

public boolean layoutDependsOn(CoordinatorLayout parent, Button child, View dependency) {

//如果dependency是依赖view的实例,说明它就是我们所需要的Dependency

 

 return dependency instanceof TempView;

}

 

//每次dependency位置发生变化,都会执行onDependentViewChanged方法 

@Override 

public boolean onDependentViewChanged(CoordinatorLayout parent, Button btn, View dependency) {

}

 

 

Behavior还可以改变子控件的大小和位置等

 

 

 

 

 

 

 

AppBarLayout

它是继承与LinearLayout的,默认 的 方向 是VerticalAppBarLayout必须作为CoordinatorLayout的直接子View,否则它的大部分功能将不会生效,如layout_scrollFlags等。)

 

 

layout_scrollFlags="scroll|enterAlways,
layout_scrollFlags=scroll的时候,这个View会 跟着 滚动 事件响应,
layout_scrollFlags=“enterAlways”的时候 这个View会响应下拉事件
所以呈现出来的结果应该是我们在上拉的时候toolBar 会隐藏,下拉的时候toolBar会出来

app:layout_scrollFlags="scroll|snap"的时候 ,
layout_scrollFlags=scroll的时候,这个View会 跟着 滚动 事件响应,
layout_scrollFlags=“snap”的时候 Scroll滑动事件结束以前 ,如果这个View部分可见,那么这个View会停在最接近当前View的位置。

 

 

 

 

 

 

 

 

 

CollapsingToolbarLayout继承与FrameLayout

简单来说 ,CollapsingToolbarLayout是工具栏的包装器,它通常作为AppBarLayout的孩子。主要实现以下功能

· Collapsing title(可以折叠 标题

· Content scrim(内容装饰),当我们滑动的位置 到达一定阀值的时候,内容 装饰将会被显示或者隐藏

· Status bar scrim(状态栏布)

· Parallax scrolling children,滑动的时候孩子呈现视觉特差效果

· Pinned position children,固定位置的 孩子

app:layout_collapseMode="parallax",表示视差效果app:layout_collapseMode="pin",当这个控件到达 CollapsingToolbarLayout的底部的时候,会代替整个CollapsingToolbarLayout显示


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值