13

Androidのアクティビティについて質問があります。

アクティビティにはメソッドaddContentView(View)があり、ビューグループには(同様の?)addView(View)メソッドがあります。

残念ながら、ViewfromaddContentViewが配置されている場所は文書化されていません。LinearLayoutビューを下部に追加するだけのようなものですか、FrameLayoutそれともビューを「上」に追加するのようなものですか?ViewGroupによるセットに依存しsetContentViewますか?

ソースに飛び込むと、の抽象メソッドaddContentViewが呼び出されます。残念ながら、どのクラスがこのメソッドを実装しているかわかりません。では、アクティビティの動作は正確にはどうですか?WindowaddContentViewaddContentView

4

1 に答える 1

45

すべてのアクティビティの基本レイアウトはFrameLayoutです。これは、通常経由で設定するレイアウトsetContentView()がこのレイアウトの子であることを意味します。addContentView()別の子を追加するだけなので、FrameLayout (既存のUI要素の上に新しいUI要素を追加することを意味する)のように動作します。

hierachyviewerこれは、フォルダから呼び出されたツールを使用して確認できANDROID_SDK\toolsます。これが2つのスクリーンショットです:

ここに画像の説明を入力してください

これは呼び出す前のレイアウトですaddContentView()。私のアクティビティはデフォルトのFrameLayoutで構成され、ボタン付きのLinearLayoutを保持しています(ここでは私のレイアウト)。これはここの一番下の行に反映されています。上の他の要素はタイトル/ステータスバーです。

ここに画像の説明を入力してください

経由でTextViewを追加すると、addContentView()次のようになります。ベースFrameLayoutが新しい子を取得したことがわかります。

于 2012-04-02T16:16:21.483 に答える