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


Zwei Methoden in der API, die dasselbe tun, sind ein Grund, eine Methode zu verwerfen.
Fyr

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


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.


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.


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;
    ...
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.