Android 初识AppBarLayout 和 CoordinatorLayout
AppBarLayout从本质上就是一个垂直的LinearLayout,只是它为了实现交互动画效果增加了一些滑动特性,基本上严重依赖于协调者布局CoordinatorLayout。如果你将AppBarLayout放置在一个其它的ViewGroup中,这些滑动特性将不起作用,而此处的AppBarLayout也就是失去了原本存在的意义。
定义在AppBarLayout中的Children应该明确设置各自的scrolling behavior,也就是滑动行为。在代码中,可以使用setScrollFlags(int)方法,在布局中可以使用app:layout_scrollFlags属性。setScrollFlags的参数取值是系统定义好的五个常量,位于AppBarLayout.LayoutParams类中。
这五个常量的含义从名字中也可以看出一二,这里就不干巴巴的念叨了,后续结合着实际案例分别介绍,这样理解也会深刻一些:
SCROLL_FLAG_SCROLL
SCROLL_FLAG_EXIT_UNTIL_COLLAPSED
SCROLL_FLAG_ENTER_ALWAYS
SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED
SCROLL_FLAG_SNAP
补充一点:可以使用addOnOffsetChangedListener方法为AppBarLayout添加滑动偏移监听事件,如:
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
// TODO
}
});
verticalOffset 参数值表示偏移值,可用appBarLayout.getTotalScrollRange()方法获取最大偏移值。
网友评论