带波浪效果的CollapsingToolbarLayout + RecycleView

简介:      小菜最近接到一个任务,实现包括波浪条的可折叠的ToolBar,准备用CollapsingToolbarLayout来尝试一下:     1. 根据使用手册和网上大神们的例子,布局文件中 CollapsingToolbarLayout 里面添加.

     小菜最近接到一个任务,实现包括波浪条的可折叠的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



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



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




GitHub地址


目录
相关文章
|
XML JSON 缓存
让UI忙碌的安卓Lottie动画渲染库(二)
上节我们讲述了Lottie开源库如何导入Android Studio但是,开源库是不断迭代的,所以我们也要及时更新
798 0
|
JavaScript Java Maven
|
机器学习/深度学习 PyTorch 算法框架/工具
使用BatchNorm替代LayerNorm可以减少Vision Transformer训练时间和推理时间
本文探讨了在Vision Transformer (ViT)架构中采用批量归一化(BatchNorm)替代层归一化(LayerNorm)的影响。ViT以其在计算机视觉领域的优异表现而闻名,但存在训练耗时长及对小型数据集推理速度慢的问题。文章提出两种改进模型:ViTBNFFN,在前馈网络中加入BatchNorm;ViTBN,则全面替换为BatchNorm。
293 1
使用BatchNorm替代LayerNorm可以减少Vision Transformer训练时间和推理时间
|
存储 设计模式 ARouter
组件化框架 ARouter 完全解析(一)
组件化框架 ARouter 完全解析(一)
616 2
|
Android开发
Android统计图表MPAndroidChart:动态添加数据更新【6】
 Android统计图表MPAndroidChart:动态添加数据更新【6】 Android MPAndroidChart的LineDataSet代表一条统计图表中统计折线,一张统计图表可以同时存在若干条统计折线,其在内存中存储的模型类型数组,从0开始下标。
3471 0
|
JSON Android开发 数据格式
【Android App】实战项目之仿抖音的短视频分享App(附源码和演示视频 超详细必看)
【Android App】实战项目之仿抖音的短视频分享App(附源码和演示视频 超详细必看)
713 1
|
Android开发
两种方法,教你解决 ViewPager 嵌套 ViewPager滑动冲突(一)
两种方法,教你解决 ViewPager 嵌套 ViewPager滑动冲突
|
机器学习/深度学习 JavaScript 定位技术
WebView深度学习(二)之全面总结WebView遇到的坑及优化
上篇文章讲到了WebView的基本使用以及Android和js的交互. 这篇文章讲一下WebView遇到的那些坑,带领各位爬坑。这里如果有你没遇到的问题,欢迎留言告诉我,我尽我所能帮你解决。
2450 0
|
存储 自然语言处理 前端开发
Jetpack 系列(2)—— 为什么 LiveData 会重放数据,怎么解决?
Jetpack 系列(2)—— 为什么 LiveData 会重放数据,怎么解决?
1625 0
Jetpack 系列(2)—— 为什么 LiveData 会重放数据,怎么解决?
|
XML Android开发 数据格式
Android底部弹窗的正确打开方式1
Android底部弹窗的正确打开方式