我知道如何使用view . getrootview()获得根视图。我也能够从一个按钮的onClick事件中获得视图,其中参数是一个视图。但是我如何在活动中获得视图呢?


当前回答

我在android 4.0.3中测试了这个功能,只有:

getWindow().getDecorView().getRootView()

给我们同样的观点

anyview.getRootView();

com.android.internal.policy.impl.PhoneWindow$DecorView@#########

and

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

给它的孩子

android.widget.FrameLayout@#######

请证实。

其他回答

获取当前活动的视图

在任何onClick我们将得到“视图视图”,通过使用“视图”得到rootView。

View View = View . getrootview ();

并在片段中获取View

View view = FragmentClass.getView();

anyview.getRootView ();这是最简单的方法。

对于那些正在使用数据绑定库的人来说,要获得当前活动的根,只需使用:

View rootView = dataBinding.getRoot();

对于Kotlin用户来说,它甚至更简单:

val rootView = dataBinding.root

在Kotlin中,我们可以做得更短一些:

val rootView = window.decorView.rootView

如果你在一个活动中,假设只有一个根视图,你可以像这样得到它。

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

然后可以将其强制转换为真正的类

或者你可以用

getWindow().getDecorView();

注意这将包括动作栏视图,你的视图在动作栏视图下面