且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

带波浪效果的CollapsingToolbarLayout + RecycleView

更新时间:2022-08-14 10:07:36

     小菜最近接到一个任务,实现包括波浪条的可折叠的ToolBar,准备用CollapsingToolbarLayout来尝试一下:

    1. 根据使用手册和网上大神们的例子,布局文件中 CollapsingToolbarLayout 里面添加需要展示的 Toolbar 和其他需要展示的控件,包括文字图片和需要自定义的波浪 View;

    2. CollapsingToolbarLayout 中,需要设置 layout_scrollFlags 中 scroll(滚动)/enterAlways(实现 quick return 效果, 当向下移动时,立即显示View)/exitUntilCollapsed(向上滚动时收缩View,但可以固定Toolbar一直在上面)/enterAlwaysCollapsed(当View已经设置minHeight属性又使用此标志时,你的View只能以最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度);

      CollapsingToolbarLayout 里面的控件一般需要设置:

      (1) layout_collapseMode (折叠模式) -有两个值:

            pin -设置为这个模式时,当CollapsingToolbarLayout完全收缩后,Toolbar还可以保留在屏幕上;

            parallax -设置为这个模式时,在内容滚动时,CollapsingToolbarLayout中的View(比如ImageView)也可以同时滚动,实现视差滚动效果,通常和layout_collapseParallaxMultiplier(设置视差因子)搭配使用。

       (2) layout_collapseParallaxMultiplier(视差因子) - 设置视差滚动因子,值为:0~1

    3. 设置相应的展示效果(字体或图片的展示大小/颜色/属性等以及卡片展开压缩的效果);

    4. 根据需求绘制一个波浪效果,应用余玄函数进行绘制;

    5. 设置RecycleView,添加数据等


其中有两点需要注意:

1. 这个效果一定要建立在没有标题栏的主题下 android:theme="@style/AppTheme.NoActionBar"

2. 如果运行过程中提示找不到属性之类的, CollapsingToolbarLayout 使用时需要引入 android.support.design 的 lib,步骤如下:

  (1) File --> Progect Structure --> Dependencies


带波浪效果的CollapsingToolbarLayout + RecycleView

  (2) 搜索 design 等关键字,找到相应的 libs,添加即可

带波浪效果的CollapsingToolbarLayout + RecycleView

    实际的显示效果,例如 pin 与 parallax 的区别;视觉因子的大小;颜色值和展示位置等,需要大家根据实际情况调试,按需要展示。小菜的实际效果:

带波浪效果的CollapsingToolbarLayout + RecycleView
带波浪效果的CollapsingToolbarLayout + RecycleView

GitHub地址