无法删除使用include标记包含的视图

时间:2014-08-22 16:16:13

标签: android

删除使用<include>标记包含的视图似乎无效。

ViewGroup currentPersonContainer = (ViewGroup) root.findViewById(R.id.propria_pessoa_container);
if (dto.occupation!= null) {
    .
    .
    .                   
} else {
    root.removeView(currentPersonContainer);
}

root.removeView(currentPersonContainer);之后,我仍然可以在root中找到它并且视图仍然可见。

如何删除xml布局资源文件中包含的视图?

2 个答案:

答案 0 :(得分:1)

使用<include>代码时,您必须重新分配 id

例如:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_width="match_parent" >

    <include 
        layout="@layout/layout_to_include"
        android:id="@+id/some_id" />

</RelativeLayout>

现在可以通过some_id访问所包含的视图。您可以通过检查当前设置中currentPersonContainer是否已初始化为null来验证这一点。我觉得是这样的。当removeView(View)为空时,view无声地失败。

简而言之,如果您的实际布局在根元素上设置了ID,则仍然需要在id标记内分配<include />

答案 1 :(得分:0)

您可以致电:

删除此视图
((ViewGroup)(currentPersonContainer.getParent()).removeView(currentPersonContainer);

这将从其直接父级中删除视图。