Frage Was ist der Unterschied zwischen match_parent und fill_parent?


Ich bin etwas verwirrt über zwei XML-Eigenschaften: match_parent und fill_parent. Es scheint, dass beide gleich sind. Gibt es einen Unterschied zwischen ihnen?


1262
2018-04-23 03:31


Ursprung


Antworten:


Sie sind dasselbe (in API Level 8+). Benutzen match_parent.

FILL_PARENT (in API Level 8 und höher in MATCH_PARENT umbenannt), was bedeutet, dass die Ansicht so groß sein soll wie ihr Vater (Minus-Padding)

...

fill_parent: Die Ansicht sollte so groß sein wie das übergeordnete Element (minus Padding). Diese Konstante ist ab API-Level 8 veraltet und wird durch ersetzt match_parent.

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


1158
2018-04-23 03:33



Google hat den Namen geändert, um Verwirrung zu vermeiden.

Problem mit dem alten Namen fill parent Es bedeutet, dass es die Dimensionen des Elternteils beeinflusst, während match parent beschreibt das resultierende Verhalten besser - passen Sie die Dimension an das übergeordnete Element an.

Beide Konstanten sind aufgelöst zu -1 am Ende, und so zu dem gleichen Verhalten in der App führen. Ironischerweise scheint diese Namensänderung, die gemacht wurde, um Dinge zu klären, eher Verwirrung verursacht hat, als sie zu beseitigen.


228
2017-12-11 13:23



Funktional kein Unterschied, Google hat gerade den Namen von fill_parent in match_parent geändert, ab API-Level 8 (Android 2.2). FILL_PARENT ist aus Kompatibilitätsgründen weiterhin verfügbar.

LayoutParams.FILL_PARENT und LayoutParams.MATCH_PARENT beide haben den Wert -1. Nicht sicher, was Google dazu verleitete, von Fill Parent zu Match Parent zu wechseln :)

Da die meisten phones are >= Android 2.2 .. Sie sollten Match Parent für zukünftige Kompatibilität verwenden ... nicht sicher, wenn sie die ältere Fill Parent-Konstante beenden werden!


22
2017-09-20 07:25



Aus Kompatibilitätsgründen ist es besser, sich an fill_parent zu halten, d. H. Wenn es unter API 8-Geräten unterstützt wird. Wenn Ihre App jedoch auf API 8 und höher abzielt, sollten Sie stattdessen match_parent verwenden.


10
2017-07-02 10:49



fill_parent (umbenannt MATCH_PARENT in API-Ebene 8 und höher), was bedeutet, dass die Ansicht so groß wie ihre Eltern sein soll (minus Padding)

fill_parent: Die Ansicht sollte so groß sein wie das übergeordnete Element (minus Padding). Diese Konstante ist ab API-Level veraltet 8 und wird ersetzt durch match_parent

Für Android-API 1.6 zu 2.1  match_parent Wirf dir einen Fehler, also benutze es fill_parent in diesen Fällen. Um Rückwärtskompatibilität zu unterstützen, ist es besser zu verwenden fill_parent

  • Beide sind statische Endkonstanten, die den Wert -1 darstellen
  • FILL_PARENT ist in API-Ebene veraltet 8

Also sind MATCH_PARENT und FILL_PARENT gleich?

Ja, MATCH_PARENT und FILL_PARENT sind nur verschiedene konstante Namen für den gleichen Integer-Wert (-1, wenn Sie neugierig sind), die verwendet werden, um den Layout-Modus eines Views innerhalb seines Elternteils anzugeben.

Warum wurde MATCH_PARENT hinzugefügt?

Ich erinnere mich, dass Roman Guy (Android Entwickler bei Google) sagte, dass sie den Namen geändert haben, weil "fill_parent"war für Entwickler verwirrend. In der Tat,"fill_parent"füllt den verbleibenden Platz nicht aus (dafür verwenden Sie das Gewicht-Attribut), aber es benötigt so viel Platz wie sein Layout-Elternteil. Deshalb ist der neue Name"match_parent"


10
2018-05-23 07:19



MATCH_PARENT und FILL_PARENTsind gleich?

Ja, MATCH_PARENT und FILL_PARENT sind nur verschiedene konstante Namen für den gleichen Integer-Wert (-1, wenn Sie neugierig sind), die verwendet werden, um den Layout-Modus eines Views innerhalb seines Elternteils anzugeben.

Warum also? MATCH_PARENT hinzugefügt?

Das Android-Team hat festgestellt, dass Entwickler falsch interpretiert haben FILL_PARENT zu meinen, a View würde den verbleibenden Platz in seinem Elternteil füllen. In der Tat, durch Angabe FILL_PARENT, das View möchte so groß sein wie seine Eltern. So wurde (wie von Romain Guy selbst in diesem Video um 10:56 erklärt) die Konstante umbenannt MATCH_PARENT um seine Verwendung zu verdeutlichen.

Okay, ich verstehe FILL_PARENT/MATCH_PARENT funktioniert. Was macht es aus, wenn ich das eine oder das andere benutze?

FILL_PARENT ist veraltet. Veraltet zu sein macht es nicht zum Teufel, aber irgendwann wird es verschwinden. Ihre Anwendung ist zukunftssicherer MATCH_PARENT. Warum sollte die veraltete Option verwendet werden, wenn sich die aktuelle Option genau gleich verhält?

Außerdem, FILL_PARENT ist eigentlich irreführend. Ich habe Leute persönlich verwirrt gesehen, weil es nicht so funktioniert, wie sie es dachten. In der Tat habe ich ein einzelnes Tag mit beiden gesehen FILL_PARENT und MATCH_PARENT, weil der Entwickler (verständlicherweise) dachte, dass es sich um zwei verschiedene Layout-Modi handelte.

WIE SIE AUSGELÖST WERDEN KÖNNEN FILL_PARENT?

Hier ist ein kurzes Beispiel dafür MATCH_PARENT/FILL_PARENT Verwirrung kann dazu führen, dass Leute ihre Köpfe wiederholt an ihren Schreibtischen anbringen. Erstens, nehmen Sie ein wirklich einfaches Layout mit ein paar View Instanzen.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <View
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="#FFFF00" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="@android:color/black"
        android:text="@string/hello_world"
        android:padding="50dp" />
    <View
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FF0000" />

</LinearLayout>

6
2018-04-15 04:20



FILL_PARENT ist in API-Ebene 8 und veraltet MATCH_PARENTVerwenden Sie eine höhere API


5
2017-09-24 06:56



match_parent  wird anstelle von verwendet fill_parent und setzt es so weit, wie das Elternteil geht. Benutz einfach match_parent und vergiss es fill_parent. Ich habe komplett aufgegeben fill_parent und alles ist wie immer perfekt.

Prüfen Hier für mehr.


5
2018-03-01 08:53