AppBarLayout的scrollFlags

AppBarLayout的Child View可以在xml布局文件中通过app:layout_scrollFlags设置flag,对应的值为:
scroll,enterAlways,enterAlwaysCollapsed,exitUntilCollapsed,snap。
先贴一下基础代码

下面直接看效果:
  • 如果不设置任何flag,AppBarLayout将固定在顶部,无法滚动

    AppBarLayout的scrollFlags
    文章图片
    没有设置任何flag.gif
  • 【AppBarLayout的scrollFlags】想要AppBarLayout滚动必须设置flag为scroll,另外四个flag需要和scroll一起使用才有效

    AppBarLayout的scrollFlags
    文章图片
    设置flag为scroll.gif
  • 设置flag为scroll|enterAlways,则child view优先scroll view滚动并且child view整个滑出屏幕

    设置flag为scroll|enterAlways.gif
  • 设置flag为scroll|enterAlways|enterAlwaysCollasped,向上滑时child view优先scroll view滚动并且child 5. view整个滑出屏幕,向下滑时child view先滚动到最小高度,最小高度通过android:minHeight=""设置,然后scoll view滚动,再是child view滚动

    AppBarLayout的scrollFlags
    文章图片
    设置flag为scroll|enterAlways|enterAlwaysCollasped.gif
  • 设置flag为scroll|enterAlwaysCollasped,向上滑时child view优先scroll view滚动并且child 5. view整个滑出屏幕,向下滑时scroll view优先child view滚动

    设置flag为scroll|enterAlwaysCollapsed.gif
  • 设置flag为scroll|exitUntilCollapsed,向上滚动时,child view优先滚动到最小高度,然后会固定在顶部,向下滚动时,scroll view优先child view滚动

    AppBarLayout的scrollFlags
    文章图片
    设置flag为scroll|exitUntilCollapsed.gif
  • 设置flag为scroll|snap,当滚动事件结束,如果child view是部分可见的,要么向上全部滚出屏幕,要么向下全部滚进屏幕

    设置flag为scroll|snap.gif

    推荐阅读