CoordinatorLayout
public class CoordinatorLayout extends ViewGroup implements NestedScrollingParent {
}
通过协调并调度里面的子控件或者布局来实现触摸(一般是指滑动)产生一些相关的动画效果。
可以通过设置view的Behavior来实现触摸的动画调度。
子控件可以相互监听。
滑动控件指的是:RecyclerView/NestedScrollView/ViewPager,ListView、ScrollView不可以。
# AppBarLayout
public class AppBarLayout extends LinearLayout {
}
AppBarLayout响应滚动事件:根据子view的滚动标志(scroll flag)来控制它们如何进入(滚入屏幕)与退出(滚出屏幕)。
-
app:layout_scrollFlags=”“
- scroll: 所有想滚动出屏幕的view都需要设置这个flag- 没有设置flag的view将被固定在屏幕顶部。
-
enterAlways: 这个flag让任意向下的滚动都会导致该view变为可见,启用快速“返回模式”。
-
enterAlwaysCollapsed: 当你的视图设置了minHeight属性的时候,那么视图只能以最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度。
-
exitUntilCollapsed: 滚动退出屏幕,最后折叠在顶端。
Tips:所有使用scroll flag的view都必须定义在没有使用scroll flag的view的前面,
这样才能确保所有的view从顶部退出,留下固定的元素。
CollapsingToolbarLayout
-
可以实现Toolbar折叠效果.
注意:
- 1.AppBarLayout设置固定高度,并且要实现折叠效果必须比toolbar的高度要高。
- 2.CollapsingToolbarLayout最好设置成match_parent app:layout_collapseMode=”“
-
parallax:视差模式,在折叠的时候会有折叠视差效果。
一般搭配layout_collapseParallaxMultiplier=“0.5”视差的明显程度(0.0~1.0之间) -
none:没有任何效果,往上滑动的时候toolbar会首先被固定并推出去。
-
pin:固定模式,在折叠的时候最后固定在顶端。
Behavior(CoordinatorLayout.Behavior/FloatingActionButton.Behavior)
github
https://github.com/danhantao/Android-Examples/tree/master/0730_md