ルート、および attachToRoot 2つのパラメータ4つの組み合わせが、無意味なの組み合わせがあります。
この関数は、あまりにもそれをスクラップ感じる書きます。非常に明白ブールattachToRoot、前面のパラメータ、もう少し分かり背後ルート。
あなたは、ルートノードを追加しますか、今見て後のノードは空です。英語の文法リードか??私は最初に行きます!
attachToRoot |
ルート | |
真 | ヌル | 無意味 |
真 | nullではありません | XMLと、その後のViewGroupを設定します。この最後には、二つの同一のViewGroupそれにする必要があります。 例外的な状況での使用 |
偽 | ヌル | ダイレクトリターンXML。ルートXMLの属性でワイドハイポイント、warp_contextは、この場合のデフォルト値となります。一般的にはありません |
偽 | nullではありません | 唯一の親グループのXMLレイアウトタイプ外層、一般に、これを使用。思考のこのラインを設計するとき、一般的に、XML、および外側層は、レイアウトの同じタイプです。だから、良い収束。 |
要するに、自分自身のシールの下で。省の知識は無用覚えておくことがポイント。これらの設定クラスの知識。そんなに変更しました。NOとことを覚えておいてください。
// アクティビティヘルパー のパブリック 静的 クラスLS_Activity { 公共の 静的ビューinflast_Normal(コンテキストコンテキスト、int型のViewGroupのViewGroup、ridは) { 返す LayoutInflaterを。(コンテキスト).inflate(RID、のViewGroup、偽); } パブリック静的ビューinflast_WrapFather(コンテキスト・コンテキスト、INT RID、のViewGroupのViewGroup) { 戻り LayoutInflaterを。(コンテキスト).inflate(RID、のViewGroup、真の); } 公共の静的 ビューinflast_ClearArrer(コンテキストコンテキストは、int型RID) { 返す LayoutInflaterを。(コンテキスト).inflate(RID、ヌル、偽); } }
ソース削減。
パブリックビューインフレート(XmlPullParserパーサ、@NullableのViewGroup根、ブールattachToRoot) { 最終的なコンテキストinflaterContext = mContext。 コンテキストlastContext =(コンテキスト)mConstructorArgs [ 0 ]。 mConstructorArgs [ 0 ] = inflaterContext。 最終的な属性セットATTRS = Xml.asAttributeSet(パーサ)。 ビューの結果 = ルート。 int型のタイプ= getXmlPullParser.START_TAG。// ルートノードを探します。 最終的な文字列名= parser.getName()。 もし(!TAG_MERGE.equals(名)&&ルート= nullを && == attachToRoot trueに)// ルートノードがXMLマージの場合。 { RInflate(パーサ、根、inflaterContext、attrsに、偽の); } 他 { 最終的なビューTEMP = createViewFromTag (ルート、名前、inflaterContext、attrsに); ViewGroup.LayoutParams のparams = ヌル; IF(!ルート= nullを && == attachToRoot falseに)// ルート、および追加のパラメータとしてXMLを使用します。 { params =のroot.generateLayoutParams(attrsに); temp.setLayoutParams(のparams ); rInflateChildren(パーサ、TEMP、attrsに、真の); } 他の IF(!ルート= nullを && == attachToRoot trueに)// ルートXMLなどの上位層と、上部及びレイアウトタイプを用いて。 { Root.addView(TEMP、paramsは); } そう IF(ルート== NULL || == attachToRoot 偽の)// ルートXMLとして使用されます { 結果= 温度; } } 戻り値の結果; }