如何实现VIewPager循环滑动呢?
很简单
在你的adapter中加一个变量MAX_NUM
只要这个数乘以你集合的最大值不超过int的最大值即可
即 list.size()*MAX_NUM < int 的最大值即可
在adapter的 getCount() 这个方法中.将你返回的值乘以MAX_NUM.你返回的值不超过int的最大值即可
例如:
public int getCount(){
return list.size()*MAX_NUM;
}
在adapter的 instantiateItem(ViewGroup container, int position) 方法中,开头加上一句代码:
position=position/list.size();
例如:
public Object instantiateItem(ViewGroup container, int position){
position=position/list.size();
//下面你的代码原封不动.不用改
}
在你的adapter方法中加一个方法:
如下:
public int getCenterValue(){
//获得中间值,你的ViewPager才能向左滑动基础
return (MAX_NUM/2)*(mData.size());
}
在你用ViewPager的主页面调用下面方法:
mPager.setCurrentItem(getCenterValue(),false );
第一个参数:item的position刚开始就直接定位到中间的item
第二个参数:是否有滑动效果
此方法缺点:
1.数据不能太多,毕竟int的取值范围就那么大,不过也不可能滑到越界吧
2.以后调用的方法用到的position有的要除以list.size(),可能一不注意就数组越界了,有的需要乘.有的不需要,自己看吧
谢谢您的阅读!