recyclerview 的自动滚动

本文介绍了如何实现RecyclerView的自动滚动效果,包括让列表来回滚动和单向无限滚动。来回滚动通过调整scrollBy方法实现,而在单向无限滚动中,需要修改getItemCount返回值和onBindViewHolder方法。同时,文章提醒在停止滚动时需调用stopScroll方法,并讨论了一种利用视觉差实现无缝循环的巧妙方法。
摘要由CSDN通过智能技术生成

1、  让列表中的item来回滚动 :也就是自动滚动到最后一个item之后 开始反方向滚动。


 代码中 我是让列表垂直方向滚动   想要水平方向滚动 只需要将 scrollBy 方法中的dx 参数进行更改 dy 设置为0 即可。 至于调用应该设置多少值 自己去调试。注意: 一定要在onStop 的方法中 调用 stopScroll 方法 

个人觉得 这个来回滚动的方法比较好玩,但是... 你懂得

2、让列表一个方向沿着一个方向一直滚动,数据重复出现。 网上有太多的例子  贴一个我参考的博客点击打开链接

 移动还是使用 scrollBy 这个方法   只是在adapter中做手脚。

        1> 更改 getItemCount 的返回值  返回integer的最大值 2147483647  也就是 将列表延长到最大值

        2> 修改 onBindViewHolder方法   获取 item 对应的对象时 不能直接使用position 而是 position%list.size()  计算出相对的下标,从而获取到要显示的对象。

同样的 要在stop的时候 去调用stopScroll 方法

这样的话出现了一个问题:

你所使用的列表中数据不能增加(不能使用上拉加在更多的方式)要想更改,只能重新加载数据(重新加载前,一定要先stop)


在查找的过程中 发现了一个有意思的文章点击打开链接  可以i进去看看。有意思是因为文章作者所实现的无缝循环是利用了人的视觉差而实现的。 具体原理是: 将原始的数据加载两次, 计算好第一条数据第二次出现在scrollView 顶部的时间 然后scrollBy(0,0)  由于人的视觉问题 好像是循环播放的。  你只要将数组的下标一起展示出来 就能发现问题所在了。 在这里说明只是觉得 作者的想法很有意思 值得我们去深思。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值