fb9ec92751a4d7fb7c7ac18a104052ed5626ec32.svn-base 1.53 KB
package com.ivt.android.me.ui.adapter;

import java.util.List;

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

public class Gift_ViewPager_GridView_Adapter extends PagerAdapter {

	private List<View> lists;
	private int mChildCount = 0;

	public Gift_ViewPager_GridView_Adapter(List<View> data) {
		lists = data;
	}

	@Override
	public int getCount() {
		return lists.size();
	}

	@Override
	public boolean isViewFromObject(View arg0, Object arg1) {

		// return false;
		return arg0 == (arg1);
	}

	public Object instantiateItem(View arg0, int arg1) {
		try {
			// 解决View只能滑动两屏的方法
			ViewGroup parent = (ViewGroup) lists.get(arg1).getParent();
			if (parent != null) {
				parent.removeAllViews();
			}
			// container.addView(v);
			((ViewPager) arg0).addView(lists.get(arg1), 0);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return lists.get(arg1);
	}

	@Override
	public void destroyItem(View arg0, int arg1, Object arg2) {
		try {
			((ViewPager) arg0).removeView(lists.get(arg1));
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}

	@Override
	public int getItemPosition(Object object) {
		// TODO Auto-generated method stub
		if (mChildCount > 0) {

			mChildCount--;

			return POSITION_NONE;

		}
		return super.getItemPosition(object);
	}

	@Override
	public void notifyDataSetChanged() {
		// TODO Auto-generated method stub
		mChildCount = getCount();
		super.notifyDataSetChanged();
	}

}