ViewPage左右循环实现原理

ViewPage实现左右循环的方式有多种,网上有很多现成的代码,这里说下鄙人常用的一种,属于一种假无尽循环。

第一步,在ViewPage的PagerAdapter中, getCount()方法直接返回整数的极限值:Integer.MAX_VALUE;instantiateItem方法和destroyItem方式中,使用对position取余数后的值进行使用

第二步,如果需要在ViewPage的onPageSelected中,引用position的值,也进行类型取余数的方式,下面是PagerAdapter的样例代码

public class HomeAdViewPagerAdapter extends PagerAdapter {

	private ArrayList<View> viewList;

	public HomeAdViewPagerAdapter(ArrayList<View> viewList) {
		this.viewList = viewList;
	}

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

	
	
	@Override
	public boolean isViewFromObject(View arg0, Object arg1) {
		return arg0==arg1;
	}

	
	
	
	@Override
	public Object instantiateItem(ViewGroup container, int position) {
		((ViewPager) container).addView(viewList.get(position%5));
		return viewList.get(position%5);
	}
	
	
	@Override
	public void destroyItem(ViewGroup container, int position, Object object) {		
		((ViewPager) container).removeView(viewList.get(position%5)); 
		
	}
	
}





你可能感兴趣的:(android)