一个不显示全屏图的banner无限自动轮播例子,利用recycleview实现类似viewpager效果...

IncompleteScreenBanner

一个不显示全屏图的banner无限自动轮播例子,利用recycleview实现类似viewpager效果

背景

其实程序猿要开发一个demo的背景,都!一!样! 说什么为了社会进步,为了挑战自我,都!是!瞎!扯!蛋! 无非就是一个背景,产品经理要求实现该功能!!!

废话小说,先上gif为敬!

功能

正常来说,banner无限轮播,都是全屏的图片去轮播,现在产品要求一张图不布满全屏,让下一个图露出一点。。。 (虽然我看不太懂这个设计美感)

步骤

前期准备

找了一下,目测没有现成的轮子,但看了一位大佬写的无限轮播图有感,我就想了一下,卧槽,我可以在这基础上改一波呀。 在这里真诚的感谢一波这位大哥Renny

github.com/ren93/Recyc… (如有雷同纯属巧合)

实现原理

  • 利用recycleview做一个类似viewpager的效果
  • 通过设置adapter的itemCount为Integer.MAX_VALUE,再把默认的第一个item设置到*10000的位置去,曲线实现无限轮播功能
  • 继承工具类SnapHelper,实现拖动itemView有viewpager的feel而且自动适配位置回弹

貌似看起来也不难吧

重点

其中,继承SnapHelper是重点,这是一个用于辅助RecyclerView在滚动结束时将Item对齐到某个位置,而官方中也有两个子类LinearSnapHelper、PagerSnapHelper,都能让item滑动后自动停留在recycleview的中间。很遗憾,这两个官方的子类不满足我们的功能需求,但是!我可以复制出来改它一波呀!

改完了,就依赖关联上recycleview,完美!

new MyCustomSnapHelper().attachToRecyclerView(mRecyclerView);

结束

更多详情,请前往我的github去撸,代码里面都有清楚的注释

github.com/xiaofuchen/…

顺手给Stars是中华人民的美德 谢谢

转载于:https://juejin.im/post/5cebcf77e51d45105d63a474

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值