3

wrap_contentレイアウトパラメータを持つLinearLayoutが1つあります。私はmatch_parentパラメータでそれの中にいくつかのビューを持っています。見てみましょう。ViewGroup match_parent within wrap_content

ケース1:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:background="#990000" 
    android:orientation="vertical"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="150dp" 
     android:background="#004400"> 
    </RelativeLayout> 
</LinearLayout> 

enter image description here

ケース2:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:background="#990000" 
    android:orientation="vertical"> 

    <Button 
     android:layout_width="match_parent" 
     android:layout_height="150dp" 
     android:text="What a terrible failure!" 
     android:background="#009900"/> 
</LinearLayout> 

enter image description here

ケース3:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:background="#990000" 
    android:orientation="vertical"> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="150dp" 
     android:background="#000099"/> 
</LinearLayout> 

これは予期した動作です。ビューが描画されます。 評判が10以下であるため、3番目の画像を投稿できません。ありがとうstackoverflow! :)

すべてのサンプルは、アンドロイドスタジオプレビューだけでなく、実際のデバイスでもテストされています。

アンドロイドから開発 - > APIガイド - >ユーザーインターフェイス - >レイアウト: wrap_content - コンテンツに必要なサイズにサイズ自体を表示します。

2番目のケースを考慮してください。私はまだボタンがコンテンツを持っていることを理解することができ、親ビューはボタンのテキストとパディングだけを受け入れます - それは "コンテンツ"です。

最初のケースはどうですか?子供は明らかに「私はmatch_parentで描かれたい」と言っています。 RelativeLayoutには子はありませんが、親コンテナを邪魔してはいけませんか?

Androidが「コンテンツサイズ」(OnMeasure)を要求して下位レベルに下ろうとすると、なぜ幅を設定する必要がありますか?それがとても賢いと私のためにすべてを決定する場合?

ここでは正確に何が起こっていますか?分かりません。なぜそれは心臓ですか?

答えて

0

これは問題ありません。最初の場合の子の幅は、match_parentをwrap_contentの幅の親に設定するため、親の幅と同じになります。そして、高さの正確な値を指定するので、子供の高さは親よりも小さいか大きいでしょう。

+0

について幅:ケース3同じ条件 他の場合は高さが加算されます。 –

+0

すべてのケースはケース3と同じです。 –

+0

私は、2,3の場合の分かりやすくするためにその高さを挿入したことを意味します。それは重要ではありません。幅については、新しいことには答えなかった。私は自分自身でこれらのパラメータを見る。そして私はそれが何を意味するのか知っています。私は、これらの例の論理を総括的に理解できないので、混乱しています。彼らはお互いに矛盾している。 –

関連する問題