关于viewpager 里嵌套 listview 同时实现翻页功能的“java.lang.IllegalStateException: The specified child..."异常处理

     这几天作项目用到了ViewPager,由于它能够实现左右划动多个页面的效果,而后java

再每一个页面里使用ListView,运行时老是出现”PagerAdapter java.lang.IllegalStateException:ide

The specified child already has a parent. You must call removeView() ..."形成程序结束。spa

  调试时显示在PagerAdapter适配器的:调试

@Override
public Object instantiateItem(ViewGroup container, int position)
{
   container.addView(views.get(position));
   return views.get(position);
}ci

 红色代码错误。很难理解新添加进来的view会自动绑定一个父类,因为一个儿子view不能与两个父类相关,因此rem

必得解绑。get

      在网上搜了不少解决办法大可能是用mViewPager.setOffscreenPageLimit(views.size()); 这种方法不用判断it

parent是否是已经存在,但多余的listview仍是不能被destroy。io

下来贴下我解决问题的办法,但愿兄弟们不用困扰:List

@Override
public Object instantiateItem(ViewGroup container, int position)
{
   try{
    if(views.get(position).getParent()==null){
              container.addView(views.get(position));
    }else{
               ((ViewGroup)views.get(position).getParent()).removeView(views.get(position));               container.addView(views.get(position));            }    }catch(Exception e){       e.printStackTrace();    }    return views.get(position); }

相关文章
相关标签/搜索