306

私はAndroid開発に不慣れで、レイアウトxmlファイルからのInflatingビューへの参照に出くわし続けています。私はグーグルで開発ガイドを検索しましたが、それでもそれが何を意味するのか理解できませんでした。誰かが非常に簡単な例を提供できれば、それは大いにありがたいです。

4

7 に答える 7

275

XML レイアウトを記述すると、Android OS によってインフレートされます。これは基本的に、メモリ内にビュー オブジェクトを作成することによってレンダリングされることを意味します。これを暗黙のインフレーションと呼びましょう(OS がビューをインフレーションします)。例えば:

class Name extends Activity{
    public void onCreate(){
         // the OS will inflate the your_layout.xml
         // file and use it for this activity
         setContentView(R.layout.your_layout);
    }
}

を使用して、ビューを明示的にインフレートすることもできますLayoutInflater。その場合、次のことを行う必要があります。

  1. のインスタンスを取得しますLayoutInflater
  2. インフレートする XML を指定する
  3. 返されたものを使用View
  4. 返されたビューでコンテンツ ビューを設定する (上記)

例えば:

LayoutInflater inflater = LayoutInflater.from(YourActivity.this); // 1
View theInflatedView = inflater.inflate(R.layout.your_layout, null); // 2 and 3
setContentView(theInflatedView) // 4
于 2011-01-01T23:45:39.553 に答える
174

ビューの「拡張」とは、レイアウトXMLを取得して解析し、その中で指定された要素とその属性からビューオブジェクトとビューグループオブジェクトを作成し、それらのビューとビューグループの階層を親ビューグループに追加することを意味します。setContentView()を呼び出すと、XMLの読み取りから作成したビューがアクティビティにアタッチされます。LayoutInflaterを使用して、別のViewGroupにビューを追加することもできます。これは、多くの状況で役立つツールです。

于 2011-01-01T23:54:45.960 に答える
6

ここでいう「ビューをインフレートする」とは、そのxmlファイルで指定されたビューを描画するlayout.xmlファイルを取得し、作成されたビューで親viewGroupをPOPULATING(=インフレート)することを意味すると思います。

于 2015-07-21T11:54:44.483 に答える