删除使用<include>
标记包含的视图似乎无效。
ViewGroup currentPersonContainer = (ViewGroup) root.findViewById(R.id.propria_pessoa_container);
if (dto.occupation!= null) {
.
.
.
} else {
root.removeView(currentPersonContainer);
}
在root.removeView(currentPersonContainer);
之后,我仍然可以在root中找到它并且视图仍然可见。
如何删除xml布局资源文件中包含的视图?
答案 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);
这将从其直接父级中删除视图。