我想获得此示例android xml布局的顶级布局。我所指的顶级是ViewGroup,它将整个活动结合在一起。
我知道
getWindow().getDecorView().findViewById(android.R.id.content);
但我不需要DecorView。
请参阅下面的xml。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linearLayout">
<WebView
android:id="@+id/my_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
</RelativeLayout>
我需要获取RelativeLayout(这是我所指的顶级布局,如果我的条款错了,请纠正我)。我可以使用下面的代码来获取它。
WebView webView = (WebView) findViewById(R.id.my_webview);
webview.getParent().getParent()
但是,如果布局嵌套得更深,如
,该怎么办?<Layout>
<Layout>
<Layout>
<Webview/>
<Layout>
<Layout>
<Layout>
如何在不使用getParent()的情况下获得顶级布局。谢谢!
答案 0 :(得分:1)
在xml中
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/parentLayout">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linearLayout">
<WebView
android:id="@+id/my_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
</RelativeLayout>
在您的活动中
RelativeLayout parentLayout=(RelativeLayout)findViewById(R.id.parentLayout);
或
getWindow().getDecorView().getRootView();
或
getWindow().getDecorView().findViewById(android.R.id.content);
或
ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);