RelativeLayout检查运行时是否已删除

时间:2013-04-25 10:56:05

标签: android view relativelayout

activity我正在更改其中一个ViewGroup内容运行时:按钮操作,其他事件。

在特定情况下,我需要检查一个孩子是否在这个layout中(在这种情况下,孩子是另一个RelativeLayout,其中包含其他观点)

如果child_1_RelativeLayout存在或已从视图树中删除,他的父代是parentRelativeLayout

,如何以编程方式检查运行时

getParent()有用吗? - 没有太多解释如何使用它,谢谢。

2 个答案:

答案 0 :(得分:2)

如果您已存储视图,则可以使用getParent()检查视图是否是其他视图的直接子视图。删除视图后,其父字段将被清除。例如:

ViewGroup parent = ...;
View child = ...;

assert(child.getParent() == parent); // <-- true

parent.removeView(child);

assert(child.getParent() == parent); // <-- false

答案 1 :(得分:1)

我不确定我是否理解你的问题,但是:

  • 添加相对布局时,请务必先给它一个id(在layout.xml文件中或代码中)
  • 检查ViewGroup中是否存在相对布局,使用ViewGroup的findViewById()方法(继承自View)并将您给出的ID传递给相对布局
  • 如果返回null,则不存在相对布局,否则findViewById()将找到它

简而言之,findViewById()不仅定义了一个活动,而且您可以在任何想要用作搜索起点的视图上调用它。