1. 了解一下ViewPager的执行原理,写的很详细可参考
2、主要代码/** * 确认View与实例对象是否相互对应。ViewPager内部用于获取View对应的ItemInfo。 * * @param view ViewPager显示的View内容 * @param object 在instantiateItem中提交给ViewPager进行保存的实例对象 * @return 是否相互对应 */ @Override /**代表了当前的页面是否与给定的键相关联。 */ public boolean isViewFromObject(View view, Object object) { return view == object; } /** * 为给定的位置创建相应的View。创建View之后,需要在该方法中自行添加到container中。 * * @param container ViewPager本身 * @param position 给定的位置 * @return 提交给ViewPager进行保存的实例对象 */ @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView; /** 每次初始化前中后三个view,量多的时候可以通过这里来控制,每次都根据paths.get(position)重新生成view*/ /** imageView的生成通过实时创建view来处理*/ container.addView(imageView, 0);//添加页卡 return imageView; } /** * 为给定的位置移除相应的View。只是解除了和ViewPager的关联关系即从父视图上移除子视图并没有回收view视图 * * @param container ViewPager本身 * @param position 给定的位置 * @param object 在instantiateItem中提交给ViewPager进行保存的实例对象 */
@Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((ImageView)object); ((ImageView) object).setImageBitmap(null); }