recyclerview 的自动滚动
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) 由于人的视觉问题 好像是循环播放的。 你只要将数组的下标一起展示出来 就能发现问题所在了。 在这里说明只是觉得 作者的想法很有意思 值得我们去深思。