<< Android-Note
Activityのルートビューの取得
Activityをレイアウトから生成する場合、もしルートビューを取得したいならレイアウトファイルでトップのビューにIDを割り振っておけばビューを取得できます。
<?xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
このレイアウトなら
LinearLayout rootView = (LinearLayout)findViewById(R.id.rootView);
とすればルートビューが取得できます。
これでもルートビューは取得できますが、もっと楽な方法もあります。
それはレイアウトファイルであらかじめ定義されているandroid.R.id.contentから全てのレイアウトのトップビューを取得し、そこから0番目の要素を探す方法です。
ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this .findViewById(android.R.id.content)).getChildAt(0);
android.R.id.contentはレイアウトが作成されたときにSDKが自動的に生成するIDです。
contentの下にレイアウトがぶら下がっているのでその0番目を取得すればルートビューが手に入ります。
いちいちビューにIDを割り振りたくないといった時には使える便利な方法です。
関連項目
© Kaz