使用recyclerView实现无限循环banner效果

2,964 阅读1分钟

新接到的任务就是要搞个能快速滑动好几页的banner控件,之前用的是viewpager实现,尝试过基于viewpager改感觉不太好实现,后面在群友推荐下改用了recycleview,大概都实现了。

首先感谢这个库RecyclerViewCardGallery-android使用RecyclerView实现Gallery画廊效果

github.com/huazhiyuan2…

实现效果如下:

3.gif

1. 原库的不足

1.不支持无限循环滑动 2.未能提供快速跳转到某个位置的函数

2. 为了解决上述不足的核心代码

  1. 支持无限滑动需要的改动点 首先adapter需要改
    TIM图片20171119035614.png
    然后需要得到通过LinearSnapHelper修正位置并且滑动停止后的位置mLastPos
    TIM图片20171119040102.png
    TIM图片20171119040208.png

拿到mLastPos主要是为了修改支持无限滑动时候card缩放(原有缩放代码因为循环的原因无效了)

TIM图片20171119040809.png

2 新增快速跳转到某个位置的函数

TIM图片20171119041307.png

短距离滚动滑动到某个位置当然还是用recycleView.smoothScrolltoPosition,它会帮你滚动到某个位置并且居中显示。

3. 代码下载位置

github地址github.com/zjw-swun/Re… 喜欢就给star吧