Material Design系列中的AppBarLayout的
ScrollFlags共有五种常量值供AppBarLayout的Children View使用,在xml布局文件中通过
app:layout_scrollFlags 设置,对应的值为:
scroll,enterAlways,enterAlwaysCollapsed,snap,exitUntilCollapsed;
也可以在代码中通过
Toobar toobar=...
AppBarLayout.LayoutParams iParams=toolbar.getLayoutParams();
iParams.setScrollFlas(...);
Scroll
随着别的控件滑动而滑动。当用到其他的flas的时候,必须加上它,不然其他的就没有效果
这个就一个滚动效果我就不上传效果图了
enterAlways
简称快速滑回,当上拉的时候,他会随着上拉消失在最上面,当用户下来的时候,会第一事件显示出来,当显示完全会,才把事件重新交给Scrolling View。
enterAlwaysCollapsed
enterAlways的附加值。这里涉及到AppLayoutBar的子View的高度和最小高度,向下滚动时,子View先向下滚动最小高度值,然后Scrolling View开始滚动,到达边界时,Child View再向下滚动,直至显示完全。在xml中还需要添加一个minHeight高度。效果图如下
这个是我没有设置minHeight高度的情况。
Snap
就是你上滑动或者下滑动的时候,滑倒一定程度,松开手指,它会自动收缩或者展开
ExitUntilCollapsed
也涉及到最小高度。发生向上滚动事件时,Child View向上滚动退出直至最小高度,然后Scrolling View开始滚动。也就是,Child View不会完全退出屏幕,保留着你设置的最小高度当我们需要图片和toolbar一起使用的时候,并且保留toolbar在最上方,就需要另外在AppLayoutBar里面在添加一层
CollapsingToolbarLayout ,这个相当于一个Framelayout 。布局文件
效果图。
关于沉浸式我添加了
StatusBarUtil
compile 'com.jaeger.statusbarutil:library:1.4.0'
若要对toobar的背景或者状态栏的颜色进行更改的话 就需要对AppLayoutBar进行监听
如图中Log打印的日志,第一个数是最大偏移量,verticaloffset是当前偏移量。具体怎么操作就看你想要什么效果了
关注,点赞,收藏都是极好的。
有什么错误的地方请指出,谢谢