IllegalStateException: The specified child already has a parent问题解决办法

来源:互联网 发布:澳门大学 知乎 编辑:程序博客网 时间:2024/05/19 03:27

最近遇到一个很让人头疼的问题,使用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
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中使用如下方式:

ViewGroup parent = (ViewGroup) v.getParent();

 if (parent != null) {

parent.removeAllViews();

 } 

container.addView(v);

0 0
原创粉丝点击