java.lang.IllegalStateException: The specified child already has a parent 错误处理
2016-07-14 11:35
579 查看
今天在项目中发现,ViewPager的内容在动态更新之后,重复点击使用可能出现如题所述的错误,而根据错误日志的描述,错误的根源是在adapter中的
The problem is that in your adapters method instantiateItem
you call container.addView(v);
but every View can have only one parent,
so it can be added only one time to a container via addView(…).
When you open the popup the first time, everything works, because v
doesn’t have a parent that time. But when you open your popupwinow the second time,
it adds the view again to the container. That cerates the error.
Try to destroy the view if you close the popup view or remove all children views from it with
container.removeAllViews()
而默认
根据上文中的描述,我们在返回view之前做一下处理,代码如下
防止出现一个view拥有多个parent的情况,即可避免上述错误。
instantiateItem()方法。而该问题的解决办法在StackOverflow中已经有了很好的解释,下面原文搬运如下:
The problem is that in your adapters method instantiateItem
you call container.addView(v);
but every View can have only one parent,
so it can be added only one time to a container via addView(…).
When you open the popup the first time, everything works, because v
doesn’t have a parent that time. But when you open your popupwinow the second time,
it adds the view again to the container. That cerates the error.
Try to destroy the view if you close the popup view or remove all children views from it with
container.removeAllViews()
而默认
instantiateItem()方法中的代码如下:
@Override public Object instantiateItem(ViewGroup container, int position) { container.addView(view); return view; }
根据上文中的描述,我们在返回view之前做一下处理,代码如下
@Override public Object instantiateItem(ViewGroup container, int position) { ViewGroup parent = (ViewGroup) view.getParent(); if (parent != null) { parent.removeAllViews(); } container.addView(view); return view; }
防止出现一个view拥有多个parent的情况,即可避免上述错误。
相关文章推荐
- Android App开发中ViewPager组件的入门使用教程
- 使用ViewPager实现高仿launcher左右拖动效果
- Android App中用Handler实现ViewPager页面的自动切换
- Android应用中使用ViewPager实现类似QQ的界面切换效果
- Android中ViewPager组件的基本用法及实现图片切换的示例
- 灵活使用Android中ActionBar和ViewPager切换页面
- Android实现千变万化的ViewPager切换动画
- Android中viewPager使用指南
- Android 使用 ViewPager循环广告位的实现
- Android中ViewPager实现滑动指示条及与Fragment的配合
- 详解Android App中ViewPager使用PagerAdapter的方法
- Android viewpager中动态添加view并实现伪无限循环的方法
- Android应用中使用ViewPager和ViewPager指示器来制作Tab标签
- Android ViewPager制作新手导航页(动态加载)
- 详解Android App中创建ViewPager组件的方法
- Android App中ViewPager与Fragment结合的一些问题解决
- 实现轮转广告带底部指示的自定义ViewPager控件
- 自定义RadioButton和ViewPager实现TabHost带滑动的页卡效果
- 实例讲解Android中ViewPager组件的一些进阶使用技巧
- Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果