インフレートパラメータを説明します

ルート、および 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として使用されます
                {
                    結果= 温度; 
                } 
            } 

            
            戻り値の結果; 
    }

 

おすすめ

転載: www.cnblogs.com/lsfv/p/11113411.html