Android 使用viewpager实现无限循环(定时+手动)

2019-12-10 19:51:09丽君

易采站长站为您分析Android 使用viewpager实现无限循环(定时+手动)的相关资料,需要的朋友可以参考下

循环轮播的方法有两种,一种是使用定时器另外一种是使用手指拨动,相比较而言,定时器实现循环播放比较容易,只要在定时器的消息里加上简单几段代码即可,下面分别就这两种方法给大家详解,具体详情请看下文吧。

 

 
  1. int count = adapter.getCount();   if (count > 1) { // 多于1个,才循环  
  2. int index = viewPager.getCurrentItem();   index = (index + 1) % count;  
  3. viewPager.setCurrentItem(index, true);   } 

但如何在手指拨动时,也支持左右无限循环的功能呢?这个问题,我折腾了好久,网上资料多不可用。

比较可笑的是在适配器里,设置数量为最大值;然后,在当前位置为中间的某个值,比如:

 

 
  1. public class MyAdapter extends PagerAdapter{   @Override 
  2. public int getCount() {   return Integer.MAX_VALUE;  
  3. }   @Override 
  4. public boolean isViewFromObject(View arg0, Object arg1) {   return arg0 == arg1;  
  5. }   @Override 
  6. public void destroyItem(View container, int position, Object object) {   ((ViewPager)container).removeView(mImageViews[position % count]);  
  7. }   public Object instantiateItem(View container, int position) {