HorizontalScrollView 中的 removeAllViews 不移除视图
removeAllViews in HorizontalScrollView does not remove views
由于这段代码,我很少发生崩溃:(我的设备上从未发生过崩溃)
崩溃 is:java.lang.IllegalStateException: 指定的 child 已经有一个 parent。您必须先在 child 的 parent 上调用 removeView()
这是代码(我添加了一个 try and catch 以确保这是导致问题的代码):
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
LinearLayout newView = getItem(position).getNewView();
HorizontalScrollView hv = (HorizontalScrollView)view.findViewById(R.id.s_scrollview);
hv.removeAllViews();
if(newView != null){
try {
hv.addView(newView);
}catch(Exception e){
e.printStackTrace();
// I also send a remote crash log here that is how I confirmed that the crash it is here. I never get a crash on my devices
}
}
...
}
这很令人沮丧。有人知道哪里出了问题吗?
谢谢!
问题是 newView 已经有一个 parent。异常表示首先 parent 应该删除它的 child。看起来像这样:
if(newView != null){
((ViewGroup)view.getParent()).removeView(newView);
hv.addView(newView);
}
由于这段代码,我很少发生崩溃:(我的设备上从未发生过崩溃) 崩溃 is:java.lang.IllegalStateException: 指定的 child 已经有一个 parent。您必须先在 child 的 parent 上调用 removeView()
这是代码(我添加了一个 try and catch 以确保这是导致问题的代码):
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
LinearLayout newView = getItem(position).getNewView();
HorizontalScrollView hv = (HorizontalScrollView)view.findViewById(R.id.s_scrollview);
hv.removeAllViews();
if(newView != null){
try {
hv.addView(newView);
}catch(Exception e){
e.printStackTrace();
// I also send a remote crash log here that is how I confirmed that the crash it is here. I never get a crash on my devices
}
}
...
}
这很令人沮丧。有人知道哪里出了问题吗? 谢谢!
问题是 newView 已经有一个 parent。异常表示首先 parent 应该删除它的 child。看起来像这样:
if(newView != null){
((ViewGroup)view.getParent()).removeView(newView);
hv.addView(newView);
}