java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(
来源:互联网 发布:数据出境安全评估指南 编辑:程序博客网 时间:2024/05/16 18:08
之前在开发的时候遇见过这个问题,现在想记录下来:
使用viewpager动态添加页面或者删除页面时出现了问题(java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first),在stackoverflow上找到了解决办法。(http://stackoverflow.com/questions/22936886/java-lang-illegalstateexception-while-using-viewpager-in-android)
原文是:
the problem is that in your adapters method instantiateItem
container.addView(v);
but every View
can have only one parent,
addView(...)
.When you open the popup the first time, everything works, because v
Try to destroy the view if you close the popup view or remove all children views from it with
container.removeAllViews()
解决办法是在instantiateItem中使用如下方式:
ViewGroup parent = (ViewGroup) v.getParent();
if (parent != null) {
parent.removeAllViews();
}
container.addView(v);中间很多次尝试已经接近答案,但是习惯性的去把v.getParent()强制转化为view,view没有removeView()方法,以至于放弃了这种方法,后来查了很多才发现应该是强转成ViewGroup;- java.lang.IllegalStateException The specified child already has a parent. You must call removeView()
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView
- java.lang.IllegalStateException The specified child already has a parent. You must call removeView()
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(
- ava.lang.IllegalStateException: The specified child already has a parent. You must call removeView()
- ava.lang.IllegalStateException The specified child already has a parent. You must call removeView()
- Android—java.lang.IllegalStateException: The specified child already has a parent. You must call rem
- @property的三类属性
- redis持久化
- UNIX环境编程------Unix编程实例------Gethostbyname和gethostname结合使用打印出主机IP地址
- df和du显示的磁盘空间使用情况不一致的原因及处理
- 疑难问题单
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(
- Android 学习网站(资源收集)
- Android补间动画(TweenedAnimations)详解
- ios 机型检测和网络检测
- 14.4.4 InnoDB File-Per-Table Tablespaces
- Android 基于Message的进程间通信 Messenger完全解析
- BAT及各大互联网公司2014前端笔试面试题:HTML/CSS篇
- 配置Tomcat将Session持久化到MySQL
- apache虚拟主机