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 が null を返すまで、特定のビューから getParent をループすることです。その時点で、コンテンツ ビューのルート ビューが見つかります。

于 2013-01-12T03:38:26.767 に答える