web-dev-qa-db-ja.com

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

match_parentfill_parentという2つのXMLプロパティについて少し混乱しています。どちらも同じようです。違いはありますか?

1339
vnshetty

それらは同じものです(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

1203
Matt Ball

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

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

両方の定数は最後に-1に解決されるため、アプリでも同じ動作になります。皮肉なことに、物事を明確にするためになされたこの名前の変更はそれを排除するのではなく混乱を追加したようです。

240
Tapirboy

機能的に違いはありませんが、Googleは名前をfill_parentからmatch_parentに変更しました。APIレベル8(Android 2.2)からです。互換性のため、FILL_PARENTはまだ利用可能です。

LayoutParams.FILL_PARENTLayoutParams.MATCH_PARENTは両方とも値-1を持ちます。 GoogleがFill ParentからMatch Parent :)に変更しようとした理由がわからない

ほとんどのphones are >= Android 2.2 ..では、将来の互換性のためにMatch Parentを使用するべきです。

25
Umair

互換性のために、fill_parentに固執すること、すなわち、API 8より下のデバイスをサポートするときには、より良いです。ただし、アプリがAPI 8以降をターゲットにしている場合は、代わりにmatch_parentを使用してください。

12
Olumide Oyetoke

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

ここ をもっとチェックしてください。

7
Koech

FILL_PARENTはAPIレベル8およびMATCH_PARENTuseより高いレベルのAPIでは推奨されません。

7
Avanish Kumar

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

5
Praveen Gaur

実際の行動に近い名前を付けるだけです "fill_parent"は、名前が示すように残りのスペースを埋めません(そのため、weight属性を使用します)。代わりに、レイアウトの親と同じ大きさのスペースを占有します。それが新しい名前が"match_parent"である理由です

5
Xar E Ahmer

widthプロパティでレイアウトheightXMLmatch_parentとして設定すると、それは親ビューが持つ全領域を占めることになります。つまり、親と同じくらいの大きさになります。

<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>

ウサギの親は赤、子供は緑です。子供が全地域を占めています。それはwidthheightmatch_parentだからです。

enter image description here

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

<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>

enter image description here

TextViewの高さ= 300dp(親の高さ) - (20(paddingTop)+10(paddingBottom))=(300 - 30)dp = 270 dp

fill_parent対match_parent

fill_parentmatch_parentの以前の名前です

APIレベル8以降では、fill_parentmatch_parentに変更し、fill_parentは現在推奨されていません。

だからfill_parentmatch_parentは同じです。

Fill_parentのAPIドキュメント

ビューは、その親と同じ大きさにする必要があります(マイナスパディング)。この定数はAPIレベル8から廃止予定となり、{@code match_parent}に置き換えられました。

4
user4696837

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に置き換えられています。お役に立てば幸いです。

4
Mansuu....

私にfill parentmatch parentを満たす)だけで同じ機能を実行します。

fill parent:API 8より前に使用されていました

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

3
Xcode

fill_parent:ビューはその親と同じ大きさであるべきです。

現在、このコンテンツfill_parentは非推奨となり、match_parentに置き換えられています。

3

match_parent。これは、ビューをその親と同じくらい大きくしたいことを意味します(マイナスのパディング)。

wrap_content、つまりビューはそのコンテンツを囲むのに十分な大きさにしたいということです(さらにパディングを加えます)。

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

"Match parent" textViewコンテンツでは、レイアウトの幅が親の全長から広がっているのがわかります。

しかし、私たちは "Wrap Content" textViewの内容で見ることができます、それはその内容(Wrap Content)の長さでラップされたレイアウトの幅です。

Android Layout

3

FILL_PARENTはAPIレベル8以降では推奨されておらず、上位バージョンではMATCH_PARENTと名前が変更されています。

両方とも同じFILL_PARENTMATCH_PARENTであり、FILL_PARENTはAPIレベル8より低いバージョンで使用され、MATCH_PATENTは8より高いAPIレベルで使用されます。

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

fill_parent:ビューはその親と同じくらい大きくなければなりません(マイナスのパディング)。この定数はAPIレベル8以降では推奨されておらず、match_parentに置き換えられています。

詳しくは this pageをご覧ください。

2

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

2

1. match_parent

レイアウトの幅と高さをmatch_parentに設定すると、それは親ビューの全領域を占めます。つまり、親ビューと同じ大きさになります。

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

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

また、パディングはすべての面に適用されます。

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の両方で動作に違いがないことがわかります。

0
hossam scott