难点分析:
1:如何在有限的数据里面, 实现无限个Item呢?
2:如何让滑动的时候, 一个一个的滑动, 而不会一下子滚动多个呢?
3:如何在第一次显示的时候, 就可以左滑呢?
针对以上问题, 接下来一一解决:
问题1:
只需要在RecyclerView.Adapter
的方法中:
@Override
public int getItemCount() {
return Integer.MAX_VALUE;
}
可能距离真正无限个Item还是有差距, 但是达到效果还是可以的;
问题2:
其实谷歌已经帮我们实现了.
new PagerSnapHelper().attachToRecyclerView(this);
这样之后, 就可以一个一个的滚动Item了, 一行代码就实现了类似ViewPager的效果,
你还有什么理由使用ViewPager?
但是有一个缺点, 就是没有像ViewPager那样的OnPageChangeListener事件监听.
不过, 完全可以自己动手, 添加这个事件.
实现起来也是非常简单. 项目中有源码.
问题3:
@Override
public void setAdapter(Adapter adapter) {
super.setAdapter(adapter);
scrollToPosition(getAdapter().getItemRawCount() * 10000);//开始时的偏移量
}
只需要让开始的时候, 产生一定的位置偏移就行了.
其实思路很简单, 大家多动动脑, 动动手. 完全无压力的!
开源地址: https://github.com/angcyo/LoopRecyclerView
至此: 文章就结束了,如有疑问: QQ群:274306954 欢迎您的加入.