我一直在跟踪错误,它基本上是相同的错误,但在不同的行上不断出现
致命异常:java.lang.IllegalStateException:指定的子级已有父级。您必须首先在孩子的父母上调用removeView()。 在android.view.ViewGroup.addViewInner(ViewGroup.java:3883)
致命异常:java.lang.IllegalStateException:指定的子级已有父级。您必须首先在孩子的父母上调用removeView()。 在android.view.ViewGroup.addViewInner(ViewGroup.java:4312)
致命异常:java.lang.IllegalStateException:指定的子级已有父级。您必须首先在孩子的父母上调用removeView()。 在android.view.ViewGroup.addViewInner(ViewGroup.java:4310)
我尝试过的事情: -
在添加任何片段时,我将此代码添加到onCreateView
中((ViewGroup)view.getParent())。removeView(view); view = inflater.inflate(R.layout.create_carpool_layout,container,false); 返回视图;
然后给视图充气
在适配器中扩充布局/视图时,我也确保从父视图中删除视图
我不确定导致此问题的原因
答案 0 :(得分:0)
尝试仔细检查如何给视图充气。
有两种可能的方式:
将父母传递给inflater:
LayoutInflater.from(context).inflate(R.layout.layout, this, true);
保留没有父级的视图:
LayoutInflater.from(context).inflate(R.layout.layout, null);
使用第一种方法时,您无法使用addView()
作为参数调用view
。
使用第二种方式,视图不会固定到父级,因此您可以调用addView()