您的位置:首页 > 移动开发 > Android开发

Android中ViewPager中界面的循环滑动

2015-09-06 14:03 459 查看

将适配器中的代码进行修改即可

package com.example.administrator.myviewpagertest.adapter;

import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;

import java.util.List;

/**
* Created by Administrator on 2015/9/1.
*/
public class ViewPagerAdapter extends PagerAdapter {
private List<View> mViews;

public ViewPagerAdapter(List<View> mViews) {
this.mViews = mViews;
}

@Override
public int getCount() {
return Integer.MAX_VALUE;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
/*View view=mViews.get(position);
container.removeView(view);*/
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
View view=mViews.get(position%mViews.size());
if (view.getParent()!=null){
container.removeView(view);
}
container.addView(view);
return view;
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
}


在getCount()方法中将返回View的数量改写为Integer.MAX_VALUE,是2的31次方减去1,是一个非常大的数值。在加载View的时候首先进行判断,看看之前是否加载过,如果加载过,则进行销毁,(之前那个销毁的方法就不需要了)否则进行加载,由于加载的数量变化了,而真正有用的界面有限,所以加载的时候加载mViews.get(position%mViews.size())的界面。

在MAinActivity中加一句话,用来显示当前界面

mViewPager.setCurrentItem(Integer.MAX_VALUE/2-Integer.MAX_VALUE/2%mViews.size());


这一句话是将有用的View放到所有的View的正中间,并将有用的View的第一个放在第一张。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: