Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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

En Android, cuando se distribuyen widgets, ¿cuál es la diferencia entre fill_parent ( match_parent en API Level 8 y superior) y wrap_content ?

¿Hay alguna documentación a la que pueda señalar? Estoy interesado en entenderlo muy bien.

  • Cómo deshabilitar una pestaña en la pantalla de Android?
  • Ajustes redimensionables en Android 3.1
  • Efecto de ruido en el fondo de Android
  • Utilizar lista de matrices de objetos como adaptador de hiladora
  • ¿Por qué mi animación deja un rastro?
  • ¿Existen bibliotecas de terceros para Android?
  • Imágenes de los botones de AlertDialog
  • ¿Cómo se implementa el menú contextual en ListActivity en Android?
  • 6 Solutions collect form web for “¿Cuál es la diferencia entre fill_parent y wrap_content?”

    Cualquiera de los dos atributos se puede aplicar al tamaño horizontal o vertical de View (control visual). Se utiliza para establecer un tamaño de Vista o Layouts en función de su contenido o del tamaño de su diseño principal en lugar de especificar explícitamente una dimensión.

    fill_parent (desaprobado y renombrado MATCH_PARENT en API Nivel 8 y superior)

    Establecer el diseño de un widget a fill_parent lo forzará a expandirse para ocupar todo el espacio disponible en el elemento de diseño en el que se ha colocado. Es aproximadamente equivalente a establecer el dockstyle de un control de formulario de Windows para Fill .

    Establecer un diseño o un control de nivel superior a fill_parent lo forzará a ocupar toda la pantalla.

    wrap_content

    Establecer el tamaño de una vista a wrap_content lo forzará a expandirse sólo lo suficientemente lejos para contener los valores (o controles secundarios) que contiene. Para controles – como cuadros de texto (TextView) o imágenes (ImageView) – esto envolverá el texto o la imagen que se muestra. Para los elementos de diseño, cambiará el tamaño del diseño para que se ajuste a los controles / diseños agregados como sus hijos.

    Es aproximadamente el equivalente de establecer la propiedad Autosize de un control de formulario de Windows en True.

    Documentación en línea

    Hay algunos detalles en la documentación del código de Android aquí .

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

    • WRAP_CONTENT , lo que significa que la Vista desea ser lo suficientemente grande para incluir su contenido (además de relleno)

    fill_parent (deprecated) = match_parent
    El borde de la vista secundaria se expande para coincidir con el borde de la vista principal.

    wrap_content
    El borde de la vista secundaria se ajusta perfectamente a su propio contenido.

    Aquí hay algunas imágenes para hacer las cosas más claras. El verde y el rojo son TextViews . El blanco es un LinearLayout mostrando a través.

    Introduzca aquí la descripción de la imagen

    Cada View (un TextView , un ImageView , un Button , etc.) necesita establecer el width y la height de la vista. En el archivo de diseño xml, que podría verse así:

     android:layout_width="wrap_content" android:layout_height="match_parent" 

    Además de establecer el ancho y la altura de match_parent o wrap_content , también se puede establecer en un valor absoluto:

     android:layout_width="100dp" android:layout_height="200dp" 

    Generalmente eso no es tan bueno, sin embargo, porque no es tan flexible para dispositivos de diferentes tamaños. Después de haber entendido wrap_content y match_parent , lo siguiente a aprender es layout_weight .

    Ver también

    • ¿Qué significa android: layout_weight?
    • Diferencia entre el relleno y el margen de una vista
    • Gravedad vs gravedad de diseño

    XML para imágenes anteriores

    Vertical LinearLayout

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="width=wrap height=wrap" android:background="#c5e1b0"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="width=match height=wrap" android:background="#f6c0c0"/> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:textAppearance="?android:attr/textAppearanceMedium" android:text="width=match height=match" android:background="#c5e1b0"/> </LinearLayout> 

    Horizontal LinearLayout

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="WrapWrap" android:background="#c5e1b0"/> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:textAppearance="?android:attr/textAppearanceMedium" android:text="WrapMatch" android:background="#f6c0c0"/> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:textAppearance="?android:attr/textAppearanceMedium" android:text="MatchMatch" android:background="#c5e1b0"/> </LinearLayout> 

    Nota

    La explicación en esta respuesta supone que no hay margen o relleno . Pero incluso si lo hay, el concepto básico sigue siendo el mismo. El borde / espaciado de la vista se ajusta sólo por el valor del margen o el relleno.

    • fill_parent hará que el ancho o altura del elemento sea tan grande como el elemento padre, es decir, el contenedor.

    • wrap_content hará que el ancho o altura sea tan grande como sea necesario para contener los elementos dentro de él.

    Haga clic aquí para obtener la referencia ANDROID DOC

    fill_parent :

    Un componente está dispuesto el diseño para el fill_parent será obligatorio para expandir para llenar los miembros de la unidad de diseño, tanto como sea posible en el espacio. Esto es coherente con la propiedad dockstyle del control de Windows. Un diseño o un control fill_parent a fill_parent lo forzará a ocupar toda la pantalla.

    wrap_content

    Configurar una vista del tamaño de wrap_content se verá obligado a ver se amplía para mostrar todo el contenido. Los controles TextView y ImageView , por ejemplo, se configuran en wrap_content para mostrar todo su texto e imagen internos. Los elementos de diseño cambiarán el tamaño según el contenido. Establecer una vista del tamaño del atributo wrap_content aproximadamente equivalente a establecer un control de Windows para True.

    Para obtener más información, consulte este enlace: http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html

    Wrap_content establece el tamaño de una Vista al minimum required to contain the contents it displays.

    Match_parent expands la vista to match the available space within the parent View, Fragment, or Activity.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.