易采站长站为您分析Android 使用viewpager实现无限循环(定时+手动)的相关资料,需要的朋友可以参考下
循环轮播的方法有两种,一种是使用定时器另外一种是使用手指拨动,相比较而言,定时器实现循环播放比较容易,只要在定时器的消息里加上简单几段代码即可,下面分别就这两种方法给大家详解,具体详情请看下文吧。
- int count = adapter.getCount(); if (count > 1) { // 多于1个,才循环
- int index = viewPager.getCurrentItem(); index = (index + 1) % count;
- viewPager.setCurrentItem(index, true); }
但如何在手指拨动时,也支持左右无限循环的功能呢?这个问题,我折腾了好久,网上资料多不可用。
比较可笑的是在适配器里,设置数量为最大值;然后,在当前位置为中间的某个值,比如:
- public class MyAdapter extends PagerAdapter{ @Override
- public int getCount() { return Integer.MAX_VALUE;
- } @Override
- public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1;
- } @Override
- public void destroyItem(View container, int position, Object object) { ((ViewPager)container).removeView(mImageViews[position % count]);
- } public Object instantiateItem(View container, int position) {










