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

Estoy un poco confundido acerca de dos propiedades XML: match_parent y fill_parent. Parece que ambos son iguales. ¿Hay alguna diferencia entre ellos?

preguntado el 23 de abril de 11 a las 00:04

16 Respuestas

Son lo mismo (en API nivel 8+). Usar 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 padre (menos relleno)

...

fill_parent: La vista debe ser tan grande como su padre (menos relleno). Esta constante está obsoleta a partir del nivel de API 8 y se reemplaza por match_parent.

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

Respondido 23 Abr '11, 04:04

si escribo una aplicación para 1.6 y 2.2, usaré fill_parent para compatibilidad, ¿es correcto? - esmeraldahieu

Debe haber algunas diferencias, ¿verdad? De lo contrario, ¿por qué Google lo desaprobó y le cambió el nombre al nuevo? - desbordamiento

@Halim No, hay sin diferencia: Ambos se definen como constantes -1. Si te sientes mejor al respecto, yo tampoco obtengo la mejora en eso ... :-) - arpía

@jlovison No, no hay diferencias. Ambos son -1. Obtiene el error porque la plataforma anterior no conoce el nuevo nombre de la misma constante. - JGSebring

¡Es tan extraño que Android Studio todavía ponga "fill_parent" en todos los diseños creados por plantillas predeterminadas! Sé que son iguales, pero sigo volviendo a esta pregunta SO todos los años para asegurarme de que nadie haya descubierto que realmente hay una diferencia. ¿Puede el equipo de Google / Android cambiar el valor predeterminado de "fill_parent" a "match_parent"? ¡Gracias por adelantado! :) - swooby

Google cambió el nombre para evitar confusiones.

Problema con el nombre antiguo fill parent era que implica que afecta las dimensiones del padre, mientras que match parent describe mejor el comportamiento resultante: haga coincidir la dimensión con la del padre.

Ambas constantes resuelven -1 al final y, por lo tanto, el comportamiento de la aplicación es idéntico. Irónicamente, este cambio de nombre realizado para aclarar las cosas parece haber agregado confusión en lugar de eliminarla.

Respondido el 30 de enero de 15 a las 09:01

... excepto con el hijo de RelativeLayout con width = match_parent y, digamos, leftOf otro. No coincide con la dimensión de su padre, llena lo que queda en él. Eso solo sirve para CAUSAR confusión. - kaay

Como FILL_PARENT y MATCH_PARENT significan que la vista quiere ser tan grande como su padre, menos el relleno del padre, ¿no es ese el espacio interior en lugar de las dimensiones exteriores? ¡Ahora estoy aún más confundido! - caltor

@bnieland He eliminado las referencias a las dimensiones internas y externas ya que no están de acuerdo con la documentación de Google en desarrollador.android.com/reference/android/view/… aunque puedo ver una cita similar (sin fundamento) en sevennet.org/2014/11/22/… que es de donde podría haber obtenido su información. - caltor

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

LayoutParams.FILL_PARENT y LayoutParams.MATCH_PARENT ambos tienen valor -1. No estoy seguro de qué tentó a Google a cambiar de Padres de relleno a Padres iguales :)

Como la mayoría de los phones are >= Android 2.2 .. debe utilizar Match Parent para compatibilidad futura ... ¡no estoy seguro de cuándo interrumpirán la constante anterior Fill Parent!

Respondido el 20 de Septiembre de 12 a las 08:09

FILL_PARENT está obsoleto en el nivel de API 8 y MATCH_PARENTutilizar API de nivel superior

Respondido el 24 de Septiembre de 15 a las 07:09

partido_padre se usa en lugar de llenar los padres y lo configura para que llegue tan lejos como llegue el padre. Solo usa partido_padre y olvidarse de llenar los padres. Me deshice completamente llenar los padres y todo es perfecto como siempre.

Consulta aquí para más.

respondido 01 mar '16, 08:03

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

respondido 22 mar '17, 08:03

Cuando estableces el diseño width y height as match_parent in XML propiedad, ocupará el área completa que tiene la vista padre, es decir, será tan grande como el padre.

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

El padre liebre es rojo y el niño es verde. El niño ocupa toda el área. Porque es width y height se encuentran las match_parent.

enter image description here

Nota: Si se aplica un relleno al padre, ese espacio no se incluiría.

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

enter image description here

Entonces TextView hight = 300dp (parent hight) - (20 (paddingTop) +10 (paddingBottom)) = (300-30) dp = 270 dp

fill_parent Vs match_parent

fill_parent es el nombre anterior de match_parent

Para API nivel 8 y superior fill_parent renombrado como match_parent y fill_parent ahora está en desuso.

So fill_parent y match_parent son idénticos.

Documentación de API para fill_parent

La vista debe ser tan grande como su padre (menos relleno). Esta constante está obsoleta a partir del nivel de API 8 y se reemplaza por {@code match_parent}.

Respondido 07 ago 17, 08:08

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

Respondido el 16 de diciembre de 14 a las 07:12

No entiendo la lógica de las personas cuando dicen esto. El padre tiene relleno. O el niño se queda de otro. ¿El niño lo está emparejando? No. ¿Está llenando el espacio restante? Aquí en lo que aparentemente es Bizzarro World, respondemos: sí. - kaay

@kaay Estoy totalmente de acuerdo en que el nuevo nombre es peor que el anterior. Pero lo que dice Google vale. - caltor

fill_parent: la vista debe ser tan grande como su padre.

ahora este contenido fill_parent está obsoleto y reemplazado por match_parent.

contestado el 01 de mayo de 17 a las 14:05

match_parent, lo que significa que la vista quiere ser tan grande como su padre (menos relleno).

wrap_content, lo que significa que la vista quiere ser lo suficientemente grande como para incluir su contenido (más relleno)

En aras de una mejor ilustración, he creado un diseño de muestra que demuestra este concepto. Para ver su efecto, agregué un borde de cada contenido de textView.

En el contenido textView "Coincidir con el padre", podemos ver que el ancho de su diseño se extiende fuera de la longitud completa del padre.

Pero podemos ver en el contenido textView "Wrap Content", su ancho de diseño envuelto en la longitud de su contenido (Wrap Content).

Diseño de Android

Respondido 26 Jul 17, 15:07

match_parent y fill_parent son la misma propiedad, que se utilizan para definir el ancho o el alto de una vista en pantalla completa de forma horizontal o vertical.

Estas propiedades se utilizan en archivos xml de Android como este.

 android:layout_width="match_parent"
 android:layout_height="fill_parent"

or

 android:layout_width="fill_parent"
 android:layout_height="match_parent"

fill_parent se usó en versiones anteriores, pero ahora ha sido obsoleto y reemplazado por match_parent. Espero que te ayude.

Respondido el 28 de diciembre de 17 a las 05:12

A mi llenar los padres y emparejar padre realiza la misma función solo que:

llenar los padres: Se utilizó antes de API 8

emparejar padre Esto se usó de API 8+ Función de ambos Rellena la vista principal a un lado del relleno.

contestado el 28 de mayo de 17 a las 05:05

FILL_PARENT pasó a llamarse MATCH_PARENT en el nivel de API 8 y superior, lo que significa que la vista quiere ser tan grande como su padre (menos relleno) - Google

respondido 13 nov., 17:10

FILL_PARENT está obsoleto desde el nivel de API 8 y superior y se renombra para las versiones superiores como MATCH_PARENT

Ambos son lo mismo FILL_PARENT y MATCH_PARENT,FILL_PARENT se usó en la versión inferior menor que el nivel de API 8 y MATCH_PATENT se usan en el nivel de API superior superior a 8.

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

fill_parent: La vista debe ser tan grande como su padre (menos relleno). Esta constante está obsoleta a partir del nivel de API 8 y se reemplaza por match_parent.

Para más detalles, visite este página

respondido 14 nov., 18:08

1. emparejar_padre

Cuando establece el ancho y la altura del diseño como match_parent, ocupará el área completa que tiene la vista principal, es decir, será tan grande como la principal.

Nota: : Si al padre se le aplica un relleno, ese espacio no se incluiría.

Cuando creamos un layout.xml por defecto, tenemos RelativeLayout como vista principal predeterminada con android: layout_width = "match_parent" y android: layout_height = "match_parent" es decir, ocupa el ancho y alto completo de la pantalla del móvil.

También tenga en cuenta que el relleno se aplica a todos los lados,

android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"

Ahora agreguemos una subvista LinearLayout y establezcamos su layout_width = "match_parent" y layout_height = "match_parent", la vista gráfica mostraría algo como esto,

match_parent_example

Código

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:

Esto es lo mismo que match_parent, fill_parent se depreció en el nivel de API 8. Por lo tanto, si está utilizando el nivel de API 8 o superior, debe evitar el uso de fill_parent.

Sigamos los mismos pasos que hicimos para match_parent, solo que en su lugar use fill_parent en todas partes.

Verá que no hay diferencia en el comportamiento tanto en fill_parent como en match parent.

Respondido 31 Oct 18, 11:10

Ambos, FILL_PARENT y MATCH_PARENT son las mismas propiedades. FILL_PARENT quedó obsoleto en el nivel de API 8.

Respondido el 18 de Septiembre de 20 a las 03:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.