2011-12-15 12 views
60

encontré que tanto fill_parent y match_parent significa lo mismo quees obsoleto palabra la única diferencia entre fill_parent y match_parent

  • fill_parent significa que el punto de vista quiere ser tan grande como su padre, menos el relleno de los padres , Si alguna.
  • match_parent significa que la vista quiere ser tan grande como su elemento primario, menos el relleno de los padres, si corresponde.

La única diferencia que he encontrado es que fill_parent está en desuso A partir de API de nivel 8 y se sustituye por match_parent

Sin embargo, no me di cuenta cualquier diferencia entre estos dos. Si ambos son lo mismo, entonces, ¿por qué fill_parent está en desuso? ¿Alguien puede explicar las diferencias entre estos dos, excepto por el hecho de que uno está en desuso y el otro no?

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

+0

Tener dos métodos en la API que hacen lo mismo es una razón para desaprobar un método. – fyr

+0

Más sobre este http://stackoverflow.com/questions/5761960/what-is-the-difference-between-match-parent-and-fill-parent-property-in-android – vnshetty

Respuesta

79

Como dijo, son exactamente lo mismo. Como dijo Romain Guy, han cambiado el nombre porque "fill_parent" era confuso para los desarrolladores. Como cuestión de hecho, "fill_parent" no llena el espacio restante (para eso se usa el atributo de peso) pero ocupa tanto espacio como su matriz de diseño. Es por eso que el nuevo nombre es "match_parent".

7

he desarrollado en Android el tiempo suficiente para darse cuenta también que no parece haber ninguna diferencia, excepto cuando se desea ejecutar en una API más. Usaría fill_parent porque hago todas mis aplicaciones con una API mínima 7. Además, como nota lateral, dado que Android es compatible con versiones anteriores, este es el camino a seguir.

9

Según Romain Guy en this video, estas palabras marcan el mismo comportamiento. Pero muchos desarrolladores entendieron mal lo que significaba fill_parent, por lo tanto, se les ocurrió un alias.

3

Adición a las respuestas existentes. Aquí hay una parte del código fuente de la clase LayoutParams, las constantes FILL_PARENT y MATCH_PARENT se correlacionan con el mismo valor. Entonces tenemos absolutamente la misma funcionalidad.

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; 
    ... 
Cuestiones relacionadas