Ist veraltetes Wort der einzige Unterschied zwischen fill_parent und match_parent

70

Ich fand das beides fill_parentund match_parentbedeutet dasselbe

  • fill_parent bedeutet, dass die Ansicht so groß wie die übergeordnete Ansicht sein soll, abzüglich der Auffüllung der übergeordneten Elemente, falls vorhanden.
  • match_parent bedeutet, dass die Ansicht so groß wie die übergeordnete Ansicht sein soll, abzüglich der Auffüllung der übergeordneten Elemente, falls vorhanden.

Der einzige Unterschied, den ich festgestellt habe, ist, dass fill_parenter ab API Level 8 veraltet ist und durch ersetzt wirdmatch_parent

Ich habe jedoch keinen Unterschied zwischen diesen beiden bemerkt. Wenn beide gleich sind, warum ist dann fill_parentveraltet? Kann jemand irgendwelche Unterschiede zwischen diesen beiden erklären, außer der Tatsache, dass einer veraltet ist und der andere nicht?

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

Sunil Kumar Sahoo
quelle
Zwei Methoden in der API, die dasselbe tun, sind ein Grund, eine Methode zu verwerfen.
Fyr
Mehr auf diesem stackoverflow.com/questions/5761960/…
vnshetty

Antworten:

91

Wie Sie sagten, sind sie genau gleich. Wie Romain Guy sagte, haben sie den Namen geändert, weil "fill_parent"es für Entwickler verwirrend war. Füllt "fill_parent"zwar nicht den verbleibenden Platz aus (dafür verwenden Sie das Attribut weight), benötigt aber so viel Platz wie das übergeordnete Layout. Deshalb lautet der neue Name "match_parent".

gwvatieri
quelle
9

Laut Romain Guy in diesem Video kennzeichnen diese Wörter dasselbe Verhalten. Viele Entwickler haben jedoch falsch verstanden, was fill_parent bedeutet, und haben daher einen Alias ​​entwickelt.

Zsombor Erdődy-Nagy
quelle
7

Ich habe mich lange genug in Android entwickelt, um auch zu erkennen, dass es keinen Unterschied zu geben scheint, außer wenn Sie auf einer älteren API ausgeführt werden möchten. Ich würde verwenden, fill_parentweil ich alle meine Apps mit minimaler API 7 mache. Nebenbei bemerkt, da Android vorwärtskompatibel ist, ist dies der richtige Weg.

Stacksonstacks
quelle
4

Ergänzung zu den vorhandenen Antworten. Hier ist ein Teil des Quellcodes aus der LayoutParamsKlasse. Die Konstanten FILL_PARENT und MATCH_PARENT werden demselben Wert zugeordnet. Wir haben also absolut die gleiche Funktionalität.

    public static class LayoutParams {
    /**
     * Special value for the height or width requested by a View.
     * FILL_PARENT means that the view wants to be as big as its parent,
     * minus the parent's padding, if any. This value is deprecated
     * starting in API Level 8 and replaced by {@link #MATCH_PARENT}.
     */
    @SuppressWarnings({"UnusedDeclaration"})
    @Deprecated
    public static final int FILL_PARENT = -1;

    /**
     * Special value for the height or width requested by a View.
     * MATCH_PARENT means that the view wants to be as big as its parent,
     * minus the parent's padding, if any. Introduced in API Level 8.
     */
    public static final int MATCH_PARENT = -1;
    ...
mes
quelle