指定的孩子已经有父错误。仅在不同循环中调用时才会发生

时间:2014-01-05 14:05:35

标签: java android android-linearlayout parent-child

我正在尝试为android安排一个linearlayout。但是,要对布局进行排序,需要在将其添加到布局之前对其进行排序。但是,如果我想稍后添加对象,则表示孩子已经有父母。似乎他们被自动分配了父母。这是正常的代码,可以正常工作:

    post_list = new ArrayList<Post>();
    for(int i = 0; i < 100; i++) {
        Post post = new Post(this, "#4c66a4", "#FFFFFF");
        post_list.add(post);

        View list = (View) post.show();
        ll.addView(list, layoutParams);
    }

但是,当我想稍后添加视图时,它将不再可能:

    post_list = new ArrayList<Post>();
    for(int i = 0; i < 100; i++) {
        Post post = new Post(this, "#4c66a4", "#FFFFFF");
        post_list.add(post);
    }

    for (int i = 0; i < post_list.size(); i++) {
        Post p = post_list.get(i);
        View list = (View) p.show();
        ll.addView(list, layoutParams);

    }

知道这个问题是怎么造成的吗? 提前致谢

1 个答案:

答案 0 :(得分:0)

如果您必须发现添加的父级的原因,我们需要查看logcat和更多代码。不过,这可能是原因:

"specified child already has a parent" error

但如果你只是试图强迫&#34;添加视图,然后在添加之前调用它:

((ViewGroup)list.getParent()).removeView(list);

从父项中删除视图并将其添加到您喜欢的位置。