Horizo​​ntalScrollView 中的 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);
}