Pregunta ¿Cuál es la diferencia entre match_parent y fill_parent?


Estoy un poco confundido sobre dos propiedades XML: match_parent y fill_parent. Parece que ambos son lo mismo. ¿Hay alguna diferencia entre ellos?


1262
2018-04-23 03:31


origen


Respuestas:


Son lo mismo (en API Nivel 8+). Utilizar match_parent.

FILL_PARENT (renombrado MATCH_PARENT en API Nivel 8 y superior), lo que significa que la vista quiere ser tan grande como su elemento principal (menos relleno)

...

fill_parent: La vista debe ser tan grande como su elemento principal (menos relleno). Esta constante está en desuso a partir del API Nivel 8 y se reemplaza por match_parent.

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


1158
2018-04-23 03:33



Google cambió el nombre para evitar confusiones.

Problema con el viejo nombre fill parent fue que implica que afecta las dimensiones del padre, mientras que match parent describe mejor el comportamiento resultante: relacione la dimensión con el elemento principal.

Ambas constantes resuelven a -1 al final, y como resultado el comportamiento idéntico en la aplicación. Irónicamente, este cambio de nombre para aclarar las cosas parece haber aumentado la confusión en lugar de eliminarla.


228
2017-12-11 13:23



Funcionalmente, no hay diferencia, Google acaba de cambiar el nombre de fill_parent a match_parent, del API nivel 8 (Android 2.2). FILL_PARENT todavía está disponible por razones de compatibilidad.

LayoutParams.FILL_PARENT y LayoutParams.MATCH_PARENT ambos tienen valor -1. No estoy seguro de qué tentó a google a cambiar de Fill Parent a Match Parent :)

Como la mayoría de los phones are >= Android 2.2 .. debes usar Match Parent para compatibilidad futura ... ¡no estoy seguro de cuándo descontinuarán la antigua constante Fill Parent!


22
2017-09-20 07:25



Por razones de compatibilidad, es mejor seguir con fill_parent, es decir, al admitir los dispositivos API 8 debajo. Pero si su aplicación apunta a API 8 y hacia arriba, debe usar match_parent en su lugar.


10
2017-07-02 10:49



fill_parent (renombrado MATCH_PARENT en nivel API 8 y superior), lo que significa que la vista quiere ser tan grande como su padre (sin relleno)

fill_parent: La vista debe ser tan grande como su elemento principal (menos relleno). Esta constante está en desuso a partir del nivel de API 8 y es reemplazado por match_parent

Para Android API 1.6 a 2.1  match_parent le arrojará un error, entonces use fill_parent en estos casos. Para admitir la compatibilidad con versiones anteriores, es mejor usar fill_parent

  • Ambas son constantes finales estáticas que representan el valor -1
  • FILL_PARENT está en desuso en el nivel de API 8

¿Entonces MATCH_PARENT y FILL_PARENT son lo mismo?

Sí, MATCH_PARENT y FILL_PARENT son solo diferentes nombres constantes para el mismo valor entero (-1 si es curioso) que se utiliza para especificar el modo de diseño de una Vista dentro de su elemento primario.

Entonces, ¿por qué se agregó MATCH_PARENT?

Recuerdo que Roman Guy (Desarrollador de Android en Google) dijo que habían cambiado el nombre porque "fill_parent"fue confuso para los desarrolladores. Como cuestión de hecho"fill_parent"no llena el espacio restante (para eso 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"


10
2018-05-23 07:19



MATCH_PARENT y FILL_PARENT¿son lo mismo?

Sí, MATCH_PARENT y FILL_PARENT son solo diferentes nombres constantes para el mismo valor entero (-1 si es curioso) que se utiliza para especificar el modo de diseño de una Vista dentro de su elemento primario.

Entonces, ¿por qué MATCH_PARENT ¿adicional?

El equipo de Android descubrió que los desarrolladores estaban malinterpretando FILL_PARENT para significar que un View llenaría el espacio restante en su padre. De hecho, al especificar FILL_PARENT, el View está solicitando ser tan grande como su padre. Por lo tanto, (como lo explica el mismo Romain Guy en este video alrededor de las 10:56) la constante fue renombrada MATCH_PARENT para aclarar su uso.

De acuerdo, entiendo cómo FILL_PARENT/MATCH_PARENT trabajos. ¿Qué importa si uso uno u otro?

FILL_PARENT es obsoleto. Ser depreciado no lo convierte en el Diablo, pero eventualmente desaparecerá. Su aplicación es más a prueba de futuro usando MATCH_PARENT. ¿Por qué usar la opción en desuso cuando la opción actual se comporta exactamente igual?

Además, FILL_PARENT es realmente engañoso. Personalmente, he visto personas confundidas porque no funciona de la manera que pensaron que sería. De hecho, he visto una sola etiqueta usando ambos FILL_PARENT y MATCH_PARENT, porque el desarrollador pensó (comprensiblemente) que eran dos modos de diseño diferentes.

CÓMO PUEDE OBTENER TRIPPED UP TRYING TO FILL_PARENT?

Aquí hay un ejemplo rápido de cómo MATCH_PARENT/FILL_PARENT la confusión puede llevar a personas repetidamente aplicando sus cabezas a sus escritorios. Primero, tome una distribución realmente simple que contenga algunos View instancias.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <View
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="#FFFF00" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="@android:color/black"
        android:text="@string/hello_world"
        android:padding="50dp" />
    <View
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FF0000" />

</LinearLayout>

6
2018-04-15 04:20



FILL_PARENT está en desuso en API nivel 8 y MATCH_PARENTutilizar API de nivel superior


5
2017-09-24 06:56



match_parent  se usa en lugar de llenar los padres y lo establece para ir tan lejos como va el padre. Solo usa match_parent y olvídate llenar los padres. Me deshice por completo llenar los padres y todo es perfecto como de costumbre.

Comprobar aquí para más.


5
2018-03-01 08:53



Solo para darle un nombre más cercano a su acción real. "fill_parent" no llena el espacio restante como su nombre implica (para eso usa el atributo de peso). En cambio, ocupa tanto espacio como su matriz de diseño. Es por eso que el nuevo nombre es "match_parent"


4
2018-04-17 11:34



Ambos tienen una funcionalidad similar, pero la única diferencia es que fill_parent se utiliza hasta el nivel 8 de API y match_parent se usa después del nivel de API 8 o superior.


3
2018-03-22 08:06