8

私は新しい Android 開発者です。ドキュメントからレイアウトインフレータの使用を理解しようとしましたが、理解できませんでした。Androidでのレイアウトインフレータの使用は何ですか?

それを使用しなければならない状況はどのようなものですか?

4

2 に答える 2

17

より技術的な説明

これを見る

シンプルにするために言い換え

基本的に、xml フラット ファイルを空気のないバルーンと考えてください。LayoutInflator が行うことは、ビューやビュー グループとして知られるフルサイズのバルーンに膨らませる (または膨らませる) ことです。そのため、フラット ファイルが膨張して表示されます。(比喩を自由に批判してください。しかし、とにかくそれが私の考え方です) 使用方法については、この記事を参照してください。著者は、オブジェクトの手動インフレーションについて話します。

これがどのように実装されているかについてのやや単純化された説明。

内部的に、Android.Resource のキャッシュされたサブセットにマップされている xml パーサーは、ビューとして認識される適用可能な xml を探し、それらをインスタンス化し、それらをビュー グループに追加します。

どこを見るか

内部的rInflateにはLayoutInflatorが xml ファイルを解析し、結果を親ビューに追加します。特定のシグネチャを持つオーバーロードを探します

void rInflate(XmlPullParser parser, View parent, final AttributeSet attrs, boolean finishInflate)

その他の注意事項

のコメントでLayoutInflater

*パフォーマンス
上の理由から、ビューのインフレーションは * ビルド時に行われる XML ファイルの前処理に大きく依存しています。したがって、実行時にプレーンな XML ファイルに対して * XmlPullParser で LayoutInflater を使用することは現在できません。

したがって、ファイルの解析に必要な処理量を削減するために、ファイルの xml がコンパイル時にキャッシュされると推測できます。

これでもう少し問題が解決することを願っています。

于 2011-02-22T18:09:16.107 に答える
2

Android の Layout Inflator は、Android の非常に重要な部分です。


                           _ _ _ _ _ _ _ _ _ _ _ _
                          |                       |
                          |       _____________   |            
                          | Name |_____________|--|-----<2 objects(TextView,EditText)> 
                          |       _____________   |            
                          | Age  |_____________|--|-----<2 objects(TextView,EditText)> 
                          |       _____________   |             
                          | Phone|_____________|--|-----<2 objects(TextView,EditText)> 
                          |                       |
                          |                       |
                          |                       |
                          |                       |
                          |        ------         |         
                          |       |BUTTON| -------|-----<1 objects(ButtonView)>      
                          |        ------         |
                          |                       |
                           -----------------------                           

We can clearly see from the above figure,

  • アクティビティの UI 要素が表示され、ユーザーには表示されないアクティビティの背後にある複雑なアクションが Android システムによって実行されています

What are these complex actions ?

  • 簡単に説明すると、Android XML ファイルに存在するビューごとにオブジェクトが作成され、instantiation ここで作成されます。
  • これらのオブジェクトの作成の助けを借りて、Inflator serviceこのプロセスが呼び出されますlayout Inflation
于 2013-09-11T03:13:40.807 に答える