android - decorview - getrootview




从当前活动获取根视图 (5)

从当前活动获取根视图。

在我们的活动中,我们可以通过以下方式获取root视图

ViewGroup rootView = (ViewGroup) ((ViewGroup) this
            .findViewById(android.R.id.content)).getChildAt(0);

要么

View rootView = getWindow().getDecorView().getRootView();

我知道如何使用View.getRootView()获取根视图。 我也能够从参数是View的按钮的onClick事件中获取View 。 但是,我怎样才能看到一个activity观点


只要incase有人需要一个更简单的方法:

以下代码给出了整个活动的视图:

View v1 = getWindow().getDecorView().getRootView();

要在活动中获得certian视图,例如在活动内部的imageView,只需添加您想要获取的视图的id:

View v1 = getWindow().getDecorView().getRootView().findViewById(R.id.imageView1);

希望这有助于某人


如果你需要你的活动的根视图(所以你可以添加你的内容)使用

findViewById(android.R.id.content)

另据报道,在某些设备上你必须使用

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

代替。

请注意,正如Booger报道的那样,这可能在某些设备上的导航栏(带后退按钮等)后面(但在大多数设备上它似乎不是)。

如果你需要查看你使用setContentView()方法添加到你的活动,然后pottedmeat写你可以使用

final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
            .findViewById(android.R.id.content)).getChildAt(0);

但更好的是只需在你的xml布局中为这个视图设置id,然后使用这个id。


我只在android 4.0.3中测试过这个:

getWindow().getDecorView().getRootView()

给我们从我们得到的相同看法

anyview.getRootView();

[email protected]#########

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

给孩子的

[email protected]#######

请确认。


这是我用来获取在使用setContentView分配的XML文件中找到的根视图:

final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
            .findViewById(android.R.id.content)).getChildAt(0);




view