20

是否有一种动态方法可以获取当前设置为我的活动的 XML 中的根布局(所有其他布局的父布局)?

我所追求的是而不是给我的根布局一个明确的 id 并通过 findViewById 找到它,我希望得到一些类似的东西

伪代码:

this.findTopLayout();

已经打过电话setContentView(R.layout.foo);

我在规范中没有看到任何可以解决问题的东西,我只是错过了它,还是没有办法做到这一点?

4

2 回答 2

60

您尝试这种方式来获取根布局:

getWindow().getDecorView().findViewById(android.R.id.content);

或者

getWindow().getDecorView().getRootView();

于 2013-01-12T03:36:34.317 回答
4

请注意,除了 Grishu 描述的方法之外,您还可以在任何视图(包括按钮、图像视图、布局等)上使用getParent方法来获取该视图的父视图(返回的父视图也可能有父视图)。因此,另一种方法是从特定视图循环 getParent,直到 getParent 返回 null。那时,您将找到内容视图的根视图。

于 2013-01-12T03:38:26.767 回答