CoordinatorLayout经常会和AppBarLayout配合使用,AppBarLayout的滑动属性有以下flags,xml中设置方法如下:
app:layout_scrollFlags="scroll|enterAlways"
flags取值scroll, enterAlways, enterAlwaysCollapsed, exitUntilCollapsed, snap,其中scroll是必须的。
scroll
允许跟随嵌套滑动
enterAlways
向下滑动时,优先滑动设置了该属性的view,然后在滑动list类的child view
enterAlwaysCollapsed
对enterAlways的补充,配合enterAlways一起使用,设置该flags的view需要设置minimum height。
向下滑动时优先滑动该view,先滑出minimum height距离后,在滑动child view,最后在把该view余下的距离滑出。
exitUntilCollapsed
这个属性和上面属性类似,也需要一个minimum height, 不过这个属性作用于向上滑动时。
向上滑动时,会留下minimum height的高度固定在顶部,然后child view在继续滑动,类似于吸顶。
snap
这个效果类似于一个阈值,向上或者向下滑动时,没有达到阈值,则弹回。更viewpager翻页时阈值效果一样
注意
因为AppBarLayout是一个线性布局,所以当某个view没有设置scroll属性时,会导致该view和后面的所有view都不能滑动,这也是为什么scroll属性是必须的。
网友评论