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>
ケース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>
ケース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)を要求して下位レベルに下ろうとすると、なぜ幅を設定する必要がありますか?それがとても賢いと私のためにすべてを決定する場合?
ここでは正確に何が起こっていますか?分かりません。なぜそれは心臓ですか?
について幅:ケース3同じ条件 他の場合は高さが加算されます。 –
すべてのケースはケース3と同じです。 –
私は、2,3の場合の分かりやすくするためにその高さを挿入したことを意味します。それは重要ではありません。幅については、新しいことには答えなかった。私は自分自身でこれらのパラメータを見る。そして私はそれが何を意味するのか知っています。私は、これらの例の論理を総括的に理解できないので、混乱しています。彼らはお互いに矛盾している。 –