私は新しい Android 開発者です。ドキュメントからレイアウトインフレータの使用を理解しようとしましたが、理解できませんでした。Androidでのレイアウトインフレータの使用は何ですか?
それを使用しなければならない状況はどのようなものですか?
私は新しい Android 開発者です。ドキュメントからレイアウトインフレータの使用を理解しようとしましたが、理解できませんでした。Androidでのレイアウトインフレータの使用は何ですか?
それを使用しなければならない状況はどのようなものですか?
これを見る
基本的に、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 がコンパイル時にキャッシュされると推測できます。
XmlResourceParser loadXmlResourceParser(String file, int id, int assetCookie, String type)
は、ファイル
Resources.javaを参照してください。これでもう少し問題が解決することを願っています。
_ _ _ _ _ _ _ _ _ _ _ _
| |
| _____________ |
| 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,
What are these complex actions ?
instantiation
ここで作成されます。Inflator service
このプロセスが呼び出されますlayout Inflation