match_parentとfill_parentの違いは何ですか?


回答:


1235

それらは同じものです(APIレベル8以降)。を使用しmatch_parentます。

FILL_PARENT(APIレベル8以降ではMATCH_PARENTに名前が変更されました)。これは、ビューを親と同じ大きさにしたいことを意味します(マイナスのパディング)。

...

fill_parent:ビューはその親と同じ大きさでなければなりません(パディングを除く)。この定数はAPIレベル8から廃止され、に置き換えられましたmatch_parent

http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html


5
1.6と2.2の両方のアプリを作成する場合、互換性のためにfill_parentを使用しますか?
emeraldhieu 2011

12
違いがあるはずですよね?そうでなければ、なぜGoogleはそれを廃止し、新しいものに改名したのですか?
stuckedoverflow 2012

49
@Halimいいえ、ありません何のdifferece:両方が定数として定義されています-1。私はあなたがそれについて気分が良くなりました、私はそのいずれでも不調を感じません... :-)
arpy

2
@jlovisonいいえ、違いはありません。どちらも-1です。古いプラットフォームはまったく同じ定数の新しい名前を認識していないため、エラーが発生します。
Tapirboy 2015年

16
Android Studioは、すべてのデフォルトのテンプレートで作成されたレイアウトにまだ「fill_parent」を配置するほど奇妙です。私はそれらが同じであることを知っていますが、本当にこの違いがあることを誰も発見していないことを確認するために、毎年このSOの質問に繰り返しアクセスします。Google / Androidチームはデフォルト値を「fill_parent」から「match_parent」に変更できますか?前もって感謝します!:)
2015年

246

Googleは混乱を避けるために名前を変更しました。

古い名前の問題fill parentは、親のディメンションに影響を与えることを意味する一方でmatch parent、結果の動作をより詳しく説明しています-ディメンションを親と一致させます。

どちらの定数も-1最終的に解決されるため、アプリで同じ動作が発生します。皮肉なことに、物事を明確にするために行われたこの名前の変更は、それを排除するのではなく、混乱を加えたようです。


17
...ただし、width = match_parentを指定したRelativeLayoutの子と、たとえばleftOf anotherを除く。親のディメンションとは一致せず、残っているものを埋めます。それは混乱の原因となるだけです。
kaay

7
FILL_PARENTとMATCH_PARENTは、ビューが親と同じ大きさになることを望んでいることを意味します。ただし、親のパディングを差し引いた値は、外側の寸法ではなく内部の空間ではありませんか。今、私はさらに混乱しています!
Caltor

彼らは時のGoogleドキュメントに同意しないよう@bnieland私は内側と外側の寸法への参照を削除したdeveloper.android.com/reference/android/view/...私が似て(根拠のない)引用符を見ることができますがsevennet.org / 2014/11/22 /…ここから情報を得ることができます。
Caltor、2015年

28

機能的には違いはありません。Googleは名前をfill_parentからmatch_parentにAPIレベル8(Android 2.2)から変更しました。FILL_PARENTは、互換性の理由から引き続き使用できます。

LayoutParams.FILL_PARENTそしてLayoutParams.MATCH_PARENT両方の値を持つ-1。親を塗りつぶしから親に一致させるためにどのようなGoogleを変更したいのかわからない

ほとんどのphones are >= Android 2.2..将来の互換性のためにMatch Parentを使用する必要があるので...古いFill Parent定数がいつ廃止されるかはわかりません!


11

互換性のために、fill_parentを使用することをお勧めします。つまり、API 8以下のデバイスをサポートする場合です。ただし、アプリがAPI 8以上をターゲットにしている場合は、代わりにmatch_parentを使用する必要があります。


8
ただし、下位互換性のみです。FILL_PARENTが廃止された場合(上記のMatt Ballが言及)、上位互換性のための唯一のオプションはMATCH_PARENTです。

2
同意しますが、より低いAPIレベルのデバイス(例:2.3、2.2、2.1)のコードを書く予定がある場合は、現時点でFILL_PARENTを使用する必要があります。古いバージョンでmatch_parentを使用すると問題が発生しました。
MSA

この答えを削除する時が来ました。それはもう関係がなく、新しい開発者に誤ったアドバイスを与える可能性があります
Tim


8

match_parentfill_parentの代わりに使用され、親が行くところまで行くように設定します。match_parentを使用し、fill_parentを忘れてください。私はfill_parentを完全に捨て、すべてがいつものように完璧です。

詳しくはこちらをご覧ください。


6

実際のアクションに近い名前を付けるだけです。"fill_parent"名前が示すように、残りのスペースは埋められません(そのためには、weight属性を使用します)。代わりに、レイアウトの親と同じだけのスペースを使用します。そのため、新しい名前は"match_parent"


2
これを述べたときの人の論理は理解できません。親にパディングがあります。または、子供は別のものです。子供はそれに合っていますか?いいえ、残りのスペースを満たしていますか?ここで明らかにBizzarro Worldにあるものについて、私たちは答えます:はい。
kaay 2015年

1
@kaay新しい名前が古い名前よりも悪いことに完全に同意します。しかし、グーグルが言うことは行く。
Caltor、2015

6

どちらも同じ機能を持っていますが、fill_parentはAPIレベル8まで使用され、match_parentはAPIレベル8以降で使用されるという違いがあります。


6

あなたはレイアウトを設定するとwidthしてheight ようmatch_parentXML財産、それは親ビューが持っている完全な面積を占めることになる、すなわち、それは親として大きなのようになります。

<LinearLayout
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:background="#f9b0b0">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#b0f9dc"/>

</LinearLayout>

うさぎの親は赤、子は緑です。子供はすべてのエリアを占めます。でwidthあり、height ですmatch_parent

ここに画像の説明を入力してください

注:親にパディングが適用されている場合、そのスペースは含まれません。

<LinearLayout
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:background="#f9b0b0"
    android:paddingTop="20dp"
    android:paddingBottom="10dp">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#b0f9dc"/>

</LinearLayout>

ここに画像の説明を入力してください

したがって、TextView hight = 300dp(parent hight)-(20(paddingTop)+10(paddingBottom))=(300-30)dp = 270 dp

fill_parentとmatch_parentの比較

fill_parent の以前の名前です match_parent

APIレベル8以降の場合、fill_parent名前がmatch_parentとに変更され、fill_parent現在は非推奨です。

だから、fill_parentmatch_parent同じです。

fill_parentのAPIドキュメント

ビューは、その親(パディングを除く)と同じ大きさでなければなりません。この定数はAPIレベル8から廃止され、{@ code match_parent}に置き換えられました。


4

match_parentは、ビューがその親(パディングを除く)と同じ大きさになりたいことを意味します。

wrap_contentは、ビューがコンテンツ(およびパディング)を囲むのに十分な大きさである必要があることを意味します

説明をわかりやすくするために、この概念を示すサンプルレイアウトを作成しました。その効果を確認するために、各textViewコンテンツの境界線を追加しました。

「親を一致させる」textViewコンテンツでは、レイアウトの幅が親の全長から広がっていることがわかります。

しかし、「Wrap Content」textViewコンテンツで見ることができます。それは、そのコンテンツ(Wrap Content)の長さでラップされたレイアウトの幅です。

Androidレイアウト


4

match_parentfill_parent 同じプロパティで、全画面のビューの幅または高さを水平または垂直に定義するために使用されます。

これらのプロパティは、このようにandroid xmlファイルで使用されます。

 android:layout_width="match_parent"
 android:layout_height="fill_parent"

または

 android:layout_width="fill_parent"
 android:layout_height="match_parent"

fill_parent以前のバージョンで使用されていましたが、現在は非推奨になり、に置き換えられていmatch_parentます。お役に立てば幸いです。


3

fill_parent:ビューはその親と同じ大きさでなければなりません。

現在、このコンテンツfill_parentは廃止され、match_parentに置き換えられています。


3

私にとって、満たし、親一致させることは同じ機能を実行するだけです:

親を埋める:API 8より前に使用されていました

match parent これはAPI 8+から使用されました 両方の機能 パディングの横にある親ビューを埋めます


2

FILL_PARENTは、APIレベル8以上でMATCH_PARENTに名前が変更されました。これは、ビューがその親(パディングを除く)と同じ大きさになりたいという意味です-Google


2

FILL_PARENT はAPIレベル8以降では非推奨であり、上位バージョン用に名前が変更されています。 MATCH_PARENT

どちらも同じFILL_PARENTMATCH_PARENTFILL_PARENTAPIレベル8未満の低いバージョンで使用され、MATCH_PATENTは8より高いAPIレベルで使用されました。

FILL_PARENTMATCH_PARENTAPIレベル8以降で名前が変更されました)、つまり、ビューを親と同じ大きさにしたいことを意味します(マイナスのパディング)

fill_parent:ビューはその親と同じ大きさでなければなりません(パディングを除く)。この定数はAPIレベル8から廃止され、に置き換えられましたmatch_parent

詳細についてご覧ください。このページを


0

1. match_parent

レイアウトの幅と高さをmatch_parentとして設定すると、親ビューが持つ完全な領域を占有します。つまり、親ビューと同じ大きさになります。

:親にパディングが適用されている場合、そのスペースは含まれません。

デフォルトでlayout.xmlを作成すると、RelativeLayoutがデフォルトの親ビューとしてandroid:layout_width = "match_parent"とandroid:layout_height = "match_parent"を持ちます。つまり、モバイル画面の幅と高さ全体を占めます。

また、パディングはすべての側面に適用されることに注意してください。

android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"

次に、サブビューLinearLayoutを追加して、そのlayout_width = "match_parent"とlayout_height = "match_parent"を設定します。グラフィカルビューは次のように表示されます。

match_parent_example

コード

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.code2care.android.togglebuttonexample.MainActivity" >

android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="11dp"
android:background="#FFFFEE"
android:orientation="vertical" >

2. fill_parent:

これはmatch_parentと同じです。fill_parentはAPIレベル8で廃止されました。したがって、APIレベル8以上を使用している場合は、fill_parentの使用を避けてください。

match_parentで行ったのと同じ手順に従い、代わりにfill_parentをどこでも使用します。

fill_parentとmatch parentの両方で動作に違いがないことがわかります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.