出现这样的情况最多是发生在recyclerView中,holder复用的过程中,多次添加view,第一次添加的时候view有了父类了,可能就是复用引起的。
我是发生在给recyclerView添加广告view的时候发生的。
解决办法:
if(view.getParent()!=null){ ((ViewGroup) view.getParent()).removeView(view); }
参看 :
本来很简单的一个功能,但是总是报The specified child already has a parent. You must call removeView() on the child's parent first.网上也找了很多的资料,大致都是说了原理.确没有说怎么解决.原理我就不说了,这个大家应该都知道原因.就是两个view共用一个ParentView.不明白的自己可以百度下.下面贴下源码.其实就是很简单的一句代码.加载完子View之后记得把它移除就好了.