当使用ViewPager滑动发生java.lang.IllegalStateException: The specified child already has a parent.异常时的解决方案

这种异常是该控件在前面已经添加过一个父控件,当再次滑动重复执行instantiateItem方法,会重复添加,解决方法是先判断其父容器是否存在,如存在,先和此子控件解除关系
代码如下:
【当使用ViewPager滑动发生java.lang.IllegalStateException: The specified child already has a parent.异常时的解决方案】

@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()方法中可以不写任何东西效果会好一点

    推荐阅读