回答:
どちらの属性も、ビューの(ビジュアルコントロール)水平または垂直サイズに適用できます。寸法を明示的に指定するのではなく、コンテンツまたは親レイアウトのサイズに基づいて、ビューまたはレイアウトのサイズを設定するために使用されます。
fill_parent
(MATCH_PARENT
APIレベル8以降では廃止され、名前が変更されました)
ウィジェットのレイアウトをfill_parentに設定すると、ウィジェットが配置されたレイアウト要素内で使用可能なスペースを占めるように拡張されます。これは、Windowsフォームコントロールのドックスタイルをに設定するのとほぼ同じですFill
。
最上位のレイアウトまたはコントロールをfill_parentに設定すると、画面全体に表示されます。
wrap_content
ビューのサイズをwrap_contentに設定すると、ビューに含まれる値(または子コントロール)を含むのに十分なだけ拡張するように強制します。テキストボックス(TextView)や画像(ImageView)などのコントロールの場合、これは表示されているテキストまたは画像をラップします。レイアウト要素の場合は、子として追加されたコントロール/レイアウトに合わせてレイアウトのサイズを変更します。
これは、WindowsフォームコントロールのAutosize
プロパティをTrue に設定するのとほぼ同じです。
オンラインドキュメント
fill_parent
(非推奨)=match_parent
子ビューの境界線は、親ビューの境界線と一致するように拡張されます。
wrap_content
子ビューの境界線は、自身のコンテンツをぴったりと囲みます。
以下に、わかりやすくするための画像をいくつか示します。緑と赤ですTextViews
。白はLinearLayout
透けて見えます。
すべてはView
(TextView
、ImageView
、Button
、など)を設定する必要があるwidth
とheight
ビューのを。xmlレイアウトファイルでは、次のようになります。
android:layout_width="wrap_content"
android:layout_height="match_parent"
幅と高さをmatch_parent
またはwrap_content
に設定するだけでなく、絶対値に設定することもできます。
android:layout_width="100dp"
android:layout_height="200dp"
ただし、さまざまなサイズのデバイスに対応する柔軟性がないため、一般的にそれはあまり良くありません。あなたが理解wrap_content
したmatch_parent
後、次に学ぶことはlayout_weight
です。
垂直LinearLayout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="width=wrap height=wrap"
android:background="#c5e1b0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="width=match height=wrap"
android:background="#f6c0c0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="width=match height=match"
android:background="#c5e1b0"/>
</LinearLayout>
水平線形レイアウト
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="WrapWrap"
android:background="#c5e1b0"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="WrapMatch"
android:background="#f6c0c0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="MatchMatch"
android:background="#c5e1b0"/>
</LinearLayout>
この回答の説明では、マージンやパディングがないことを前提としています。しかし、それがあったとしても、基本的な考え方は同じです。ビューの境界線/間隔は、マージンまたはパディングの値によって調整されます。
fill_parent
要素の幅または高さを親要素、つまりコンテナと同じ大きさにします。
wrap_content
幅または高さを、要素を含めるのに必要なだけ大きくします。
fill_parent
:
コンポーネントは配置されたレイアウトでありfill_parent
、レイアウトユニットメンバーをスペースでできるだけいっぱいに拡大する必要があります。これは、Windowsコントロールのdockstyleプロパティと一致しています。トップセットのレイアウトまたはコントロールfill_parent
は、画面全体を占めるように強制します。
wrap_content
サイズのビューを設定すると、wrap_content
すべてのコンテンツを表示するために展開が強制的に表示されます。TextViewとImageViewの制御は、例えば、に設定されwrap_content
、その全体の内部のテキストと画像を表示します。レイアウト要素はコンテンツに応じてサイズを変更します。wrap_content
WindowsコントロールをTrueに設定するのとほぼ同じAutosize属性のサイズのビューを設定します。
詳細については、このリンクを確認してください:http : //developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
fill_parent
名前が変更さmatch_parent
れたことに注意してください。