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?
android
android-layout
vnshetty
quelle
quelle
Antworten:
Sie sind dasselbe (in API Level 8+). Verwenden Sie
match_parent
.http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
quelle
-1
. Wenn du dich besser fühlst, verstehe ich das auch nicht ... :-)-1
. Sie erhalten den Fehler, weil die ältere Plattform den neuen Namen derselben Konstante nicht kennt.Google hat den Namen geändert, um Verwirrung zu vermeiden.
Das Problem mit dem alten Namen
fill parent
bestand darin, dass er die Dimensionen des übergeordneten Elements beeinflusst, währendmatch parent
das resultierende Verhalten besser beschrieben wird - passen Sie die Dimension an das übergeordnete Element an.Beide Konstanten werden
-1
am Ende aufgelöst und führen so zu einem identischen Verhalten in der App. Ironischerweise scheint diese Namensänderung, die vorgenommen wurde, um die Dinge zu klären, eher Verwirrung zu stiften, als sie zu beseitigen.quelle
Funktionell kein Unterschied, Google hat nur den Namen von fill_parent in match_parent von API Level 8 (Android 2.2) geändert. FILL_PARENT ist aus Kompatibilitätsgründen weiterhin verfügbar.
LayoutParams.FILL_PARENT
undLayoutParams.MATCH_PARENT
beide haben den Wert -1. Ich bin mir nicht sicher, was Google dazu verleitet hat, 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, wann sie die ältere Fill Parent-Konstante beenden werden!quelle
Aus Kompatibilitätsgründen ist es besser, sich an fill_parent zu halten, dh wenn Geräte unter API 8 unterstützt werden. Wenn Ihre App jedoch auf API 8 und höher abzielt, sollten Sie stattdessen match_parent verwenden.
quelle
FILL_PARENT
es veraltet ist (wie oben von Matt Ball erwähnt), ist die einzige Option für die VorwärtskompatibilitätMATCH_PARENT
.FILL_PARENT
ist in API-Level 8 veraltet undMATCH_PARENT
verwendet API auf höherer Ebenequelle
match_parent wird anstelle von fill_parent verwendet und legt fest, dass es so weit wie möglich zum übergeordneten Element geht. Verwenden Sie einfach match_parent und vergessen Sie fill_parent . Ich habe fill_parent komplett über Bord geworfen und alles ist wie immer perfekt.
Überprüfen Sie hier für mehr.
quelle
Nur um ihm einen Namen zu geben, der seiner tatsächlichen Handlung näher kommt .
"fill_parent"
füllt den verbleibenden Platz nicht aus, wie der Name andeutet (dafür verwenden Sie das Attribut weight). Stattdessen nimmt es so viel Platz ein wie sein übergeordnetes Layout. Deshalb lautet der neue Name"match_parent"
quelle
Beide haben ähnliche Funktionen. Der einzige Unterschied besteht darin, dass fill_parent bis API-Ebene 8 und match_parent nach API-Ebene 8 oder höher verwendet wird.
quelle
Wenn Sie das Layout festlegen
width
undheight
wiematch_parent
in derXML
Eigenschaft festlegen , wird der gesamte Bereich der übergeordneten Ansicht belegt, dh er ist so groß wie die übergeordnete Ansicht.Hasenelternteil ist rot und Kind ist grün. Kind besetzen alle Bereiche. Weil es ist
width
undheight
istmatch_parent
.Hinweis: Wenn dem übergeordneten Element eine Auffüllung zugewiesen wird, wird dieses Leerzeichen nicht berücksichtigt.
TextView-Höhe = 300 dp (übergeordnete Höhe) - (20 (paddingTop) +10 (paddingBottom)) = (300 - 30) dp = 270 dp
fill_parent Vs match_parent
fill_parent
ist der vorherige Name vonmatch_parent
Für API Level 8 und höher
fill_parent
umbenannt inmatch_parent
undfill_parent
ist jetzt veraltet.Also
fill_parent
undmatch_parent
sind gleich.API-Dokumentation für fill_parent
Die Ansicht sollte so groß wie die übergeordnete Ansicht sein (minus Auffüllung). Diese Konstante ist ab API-Ebene 8 veraltet und wird durch {@code match_parent} ersetzt.
quelle
match_parent, was bedeutet, dass die Ansicht so groß wie die übergeordnete Ansicht sein soll (minus Auffüllen).
wrap_content, was bedeutet, dass die Ansicht gerade groß genug sein soll, um ihren Inhalt einzuschließen (plus Auffüllen)
Zur besseren Veranschaulichung habe ich ein Beispiellayout erstellt, das dieses Konzept demonstriert. Um die Wirkung zu sehen, habe ich jedem textView-Inhalt einen Rahmen hinzugefügt.
Im TextView-Inhalt "Übergeordnetes Element abgleichen" können wir sehen, dass die Layoutbreite über die gesamte Länge des übergeordneten Elements verteilt ist.
Aber wir können in "Wrap Content" textView-Inhalt sehen, dass die Layoutbreite in die Länge des Inhalts (Wrap Content) eingewickelt ist.
quelle
match_parent
undfill_parent
sind dieselbe Eigenschaft, mit der die Breite oder Höhe einer Ansicht im Vollbildmodus horizontal oder vertikal definiert wird.Diese Eigenschaften werden in solchen Android-XML-Dateien verwendet.
oder
fill_parent
wurde in früheren Versionen verwendet, aber jetzt ist es veraltet und ersetzt durchmatch_parent
. Ich hoffe es wird dir helfen.quelle
fill_parent: Die Ansicht sollte so groß sein wie die übergeordnete.
Jetzt ist dieser Inhalt fill_parent veraltet und wird durch match_parent ersetzt.
quelle
Für mich erfüllt das Ausfüllen von Eltern und Übereinstimmen von Eltern nur die gleiche Funktion:
Elternteil füllen : Wurde vor API 8 verwendet
match parent Dies wurde von API 8+ verwendet. Funktion von beiden Füllt die übergeordnete Ansicht neben dem Auffüllen
quelle
FILL_PARENT wurde in API Level 8 und höher in MATCH_PARENT umbenannt. Dies bedeutet, dass die Ansicht so groß sein soll wie die übergeordnete Ansicht (ohne Auffüllung) - Google
quelle
FILL_PARENT
ist ab API-Level 8 und höher veraltet und wird für die oberen Versionen in umbenanntMATCH_PARENT
Beide sind gleich
FILL_PARENT
undMATCH_PARENT
wurdenFILL_PARENT
in der niedrigeren Version weniger als API-Stufe 8 verwendet, und MATCH_PATENT werden in höheren API-Stufen größer als 8 verwendet.FILL_PARENT
(MATCH_PARENT
in API Level 8 und höher umbenannt), was bedeutet, dass die Ansicht so groß sein soll wie ihre übergeordnete Ansicht (minus Auffüllen)fill_parent
: Die Ansicht sollte so groß wie die übergeordnete Ansicht sein (minus Auffüllung). Diese Konstante ist ab API-Ebene 8 veraltet und wird durch ersetztmatch_parent
.Für weitere Informationen besuchen Sie bitte diese Seite
quelle
1. match_parent
Wenn Sie die Breite und Höhe des Layouts als match_parent festlegen, wird der gesamte Bereich der übergeordneten Ansicht belegt, dh er ist so groß wie die übergeordnete Ansicht.
Hinweis : Wenn dem übergeordneten Element eine Auffüllung zugewiesen wird, wird dieses Leerzeichen nicht berücksichtigt.
Wenn wir standardmäßig eine layout.xml erstellen, haben wir RelativeLayout als übergeordnete Standardansicht mit android: layout_width = "match_parent" und android: layout_height = "match_parent", dh es nimmt die gesamte Breite und Höhe des mobilen Bildschirms ein.
Beachten Sie auch, dass die Polsterung an allen Seiten angebracht ist.
Fügen Sie nun eine Unteransicht LinearLayout hinzu und legen Sie deren layout_width = "match_parent" und layout_height = "match_parent" fest. In der grafischen Ansicht wird etwa Folgendes angezeigt:
match_parent_example
Code
2. fill_parent:
Dies ist dasselbe wie match_parent, fill_parent wurde in API-Ebene 8 abgeschrieben. Wenn Sie also API-Ebene 8 oder höher verwenden, müssen Sie die Verwendung von fill_parent vermeiden
Befolgen wir die gleichen Schritte wie für match_parent, verwenden Sie stattdessen überall fill_parent.
Sie werden sehen, dass es keinen Unterschied im Verhalten sowohl bei fill_parent als auch bei match parent gibt.
quelle