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?
Sie sind dasselbe (in API Level 8+). Verwenden Sie 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 übergeordnetes Element (minus Auffüllen).
...
fill_parent
: Die Ansicht sollte so groß sein wie das übergeordnete Element (ohne Auffüllen). Diese Konstante ist ab API Level 8 veraltet und wird durchmatch_parent
ersetzt.
http://developer.Android.com/reference/Android/view/ViewGroup.LayoutParams.html
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ährend match parent
das resultierende Verhalten besser beschreibt - die Dimension mit dem übergeordneten Element vergleichen.
Beide Konstanten werden am Ende in -1
aufgelöst und führen zu einem identischen Verhalten in der App. Ironischerweise scheint diese Namensänderung, die zur Klarstellung der Dinge vorgenommen wurde, eher Verwirrung zu bieten als sie zu beseitigen.
Funktionell kein Unterschied, Google hat gerade 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
und LayoutParams.MATCH_PARENT
haben beide den Wert -1. Nicht sicher, was Google veranlasst hat, von Fill Parent zu Match Parent zu wechseln :)
Da die meisten von phones are >= Android 2.2
.. für zukünftige Kompatibilität verwendet werden sollten, sollten Sie Match Parent verwenden.
Aus Gründen der Kompatibilität ist es besser, fill_parent zu verwenden, d. H., Wenn Sie Geräte unter API 8 unterstützen. Wenn Ihre App jedoch API 8 oder höher unterstützt, sollten Sie stattdessen match_parent verwenden.
match_parent wird anstelle von fill_parent verwendet und legt fest, dass es so weit geht, wie das übergeordnete Element. Verwenden Sie einfach match_parent und vergessen Sie fill_parent. Ich habe fill_parent komplett aufgegeben und alles ist wie immer perfekt.
Überprüfen Sie hier für mehr.
FILL_PARENT
ist in API-Ebene 8 und MATCH_PARENT
use auf höherer Ebene veraltet
Beide haben eine ähnliche Funktionalität. Der Unterschied besteht darin, dass fill_parent bis API-Ebene 8 und match_parent nach API-Ebene 8 oder höher verwendet wird.
Nur um ihm einen Namen zu geben, der näher an der tatsächlichen Aktion liegt . "fill_parent"
füllt den verbleibenden Speicherplatz nicht aus, wie der Name implizieren würde (hierfür verwenden Sie das Gewichtsattribut). Stattdessen nimmt es genauso viel Platz wie sein übergeordnetes Layout. Deshalb lautet der neue Name "match_parent"
Wenn Sie das Layout width
und height
als match_parent
in der XML
-Eigenschaft festlegen, nimmt es den gesamten Bereich der übergeordneten Ansicht ein, d. H. Er ist so groß wie der übergeordnete.
<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>
Hasenmutter ist rot und Kind ist grün. Kind besetzt den gesamten Bereich. Weil width
und height
match_parent
sind.
Hinweis: Wenn übergeordnetes Element eine Auffüllung angewendet wird, wird dieses Leerzeichen nicht eingeschlossen.
<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 (übergeordnete Höhe) - (20 (paddingTop) +10 (paddingBottom)) = (300 - 30) dp = 270 dp
fill_parent
ist der vorherige Name von match_parent
Für API-Ebene 8 und höher ist fill_parent
umbenannt in match_parent
und fill_parent
ist jetzt veraltet.
fill_parent
und match_parent
sind also gleich.
Die Ansicht sollte so groß wie das übergeordnete Element sein (minus Auffüllen). Diese Konstante ist ab API Level 8 veraltet und wird durch {@code match_parent} ersetzt.
match_parent
und fill_parent
sind die gleichen Eigenschaften und werden verwendet, um die Breite oder Höhe einer Ansicht im Vollbildmodus horizontal oder vertikal zu definieren.
Diese Eigenschaften werden in Android-XML-Dateien wie folgt verwendet.
Android:layout_width="match_parent"
Android:layout_height="fill_parent"
oder
Android:layout_width="fill_parent"
Android:layout_height="match_parent"
fill_parent
wurde in früheren Versionen verwendet, aber jetzt wurde es veraltet und durch match_parent
..__ ersetzt. Ich hoffe, es hilft Ihnen.
Für mich fill parent und match parent führt nur die gleiche Funktion aus:
fill parent : Wurde vor API 8 verwendet
match parent Dies wurde von API 8 + Funktion von Both verwendet. Füllt die übergeordnete Ansicht neben der Auffüllung
fill_parent: Die Ansicht sollte so groß sein wie das übergeordnete Element.
jetzt ist dieser Inhalt fill_parent veraltet und wird durch match_parent ersetzt.
match_parent, was bedeutet, dass die Ansicht so groß sein soll wie ihr übergeordnetes Element (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 veranschaulicht. Um den Effekt zu sehen, habe ich einen Rand jedes textView-Inhalts hinzugefügt.
Im textView-Inhalt "Übergeordnete" können wir die Breite des Layouts über seine gesamte Länge sehen.
In "Wrap Content" sehen wir jedoch textView-Inhalte, deren Layoutbreite um die Länge des Inhalts (Wrap Content) gebunden ist.
FILL_PARENT
ist ab API-Ebene 8 und höher veraltet und wird für die übergeordneten Versionen in MATCH_PARENT
umbenannt.
Beide sind gleich FILL_PARENT
und MATCH_PARENT
, FILL_PARENT
wurde in der niedrigeren Version weniger als API-Ebene 8 verwendet und MATCH_PATENT werden in höheren API-Levels über 8 verwendet.
FILL_PARENT
(in API Level 8 und höher umbenannt MATCH_PARENT
), was bedeutet, dass die Ansicht so groß sein soll wie ihr übergeordnetes Element (minus Auffüllen).
fill_parent
: Die Ansicht sollte so groß sein wie das übergeordnete Element (ohne Auffüllen). Diese Konstante ist ab API Level 8 veraltet und wird durch match_parent
ersetzt.
Für weitere Informationen besuchen Sie bitte diese Seite
FILL_PARENT wurde in API Level 8 und höher in MATCH_PARENT umbenannt, was bedeutet, dass die Ansicht so groß sein soll wie ihr übergeordnetes Element (minus Auffüllen) - Google
1. match_parent
Wenn Sie Layoutbreite und -höhe als match_parent festlegen, nimmt sie den gesamten Bereich der übergeordneten Ansicht ein, d. H. Sie ist so groß wie die übergeordnete Ansicht.
Hinweis : Wenn für übergeordnetes Element eine Auffüllung angewendet wird, wird dieser Platz nicht eingeschlossen.
Wenn wir standardmäßig eine layout.xml erstellen, haben wir RelativeLayout als standardmäßige übergeordnete Ansicht mit Android: layout_width = "match_parent" und Android: layout_height = "match_parent", d. H. Sie nimmt die gesamte Breite und Höhe des mobilen Bildschirms ein.
Beachten Sie auch, dass das Auffüllen auf alle Seiten angewendet wird.
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:paddingTop="@dimen/activity_vertical_margin"
Jetzt können wir eine Unteransicht LinearLayout hinzufügen und deren layout_width = "match_parent" und layout_height = "match_parent" festlegen. Die grafische Ansicht würde etwa Folgendes anzeigen:
match_parent_example
Code
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:
Dies ist dasselbe wie bei match_parent. Füllparameter 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
Führen wir die gleichen Schritte wie bei match_parent aus, verwenden Sie stattdessen fill_parent überall.
Sie würden sehen, dass sich das Verhalten von fill_parent und match parent nicht unterscheidet.