这种异常是该控件在前面已经添加过一个父控件,当再次滑动重复执行instantiateItem方法,会重复添加,解决方法是先判断其父容器是否存在,如存在,先和此子控件解除关系
代码如下:
@Override
public Object instantiateItem(View arg0, int arg1) // 实例化Item
{
/**
* 防止向左滑动
*/
ImageView imageView = (ImageView) viewList.get(arg1%viewList.size());
if(imageView.getParent()!=null){
((ViewPager)imageView.getParent()).removeView(imageView);
}
((ViewPager) arg0).addView((View) imageView, 0);
return imageView;
}
destroyItem()方法中可以不写任何东西效果会好一点