¿Cuál es la diferencia entre el margen de una vista y el relleno?
¿Cuál es la diferencia entre el margen de una vista y el relleno?
Respuestas:
Para ayudarme a recordar el significado del relleno , pienso en un abrigo grande con mucho relleno de algodón grueso . Estoy dentro de mi abrigo, pero mi abrigo acolchado y yo estamos juntos. Somos una unidad
Pero para recordar el margen , pienso en " ¡Oye, dame un margen! " Es el espacio vacío entre tú y yo. No entres en mi zona de confort, mi margen.
Para hacerlo más claro, aquí hay una imagen de relleno y margen en TextView
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#c5e1b0"
android:textColor="#000000"
android:text="TextView margin only"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#f6c0c0"
android:textColor="#000000"
android:text="TextView margin only"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#c5e1b0"
android:padding="10dp"
android:textColor="#000000"
android:text="TextView padding only"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#f6c0c0"
android:padding="10dp"
android:textColor="#000000"
android:text="TextView padding only"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#c5e1b0"
android:textColor="#000000"
android:padding="10dp"
android:text="TextView padding and margin"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#f6c0c0"
android:textColor="#000000"
android:padding="10dp"
android:text="TextView padding and margin"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#c5e1b0"
android:textColor="#000000"
android:text="TextView no padding no margin"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#f6c0c0"
android:textColor="#000000"
android:text="TextView no padding no margin"
android:textSize="20sp" />
</LinearLayout>
Relleno es el espacio dentro del borde, entre el borde y el contenido de la vista real. Tenga en cuenta que el relleno va completamente alrededor del contenido: hay relleno en los lados superior, inferior, derecho e izquierdo (que puede ser independiente).
Los márgenes son los espacios fuera del borde, entre el borde y los otros elementos al lado de esta vista. En la imagen, el margen es el área gris fuera del objeto completo. Tenga en cuenta que, como el relleno, el margen va completamente alrededor del contenido: hay márgenes en los lados superior, inferior, derecho e izquierdo.
Una imagen dice más de 1000 palabras (extraídas de Margin Vs Padding - Propiedades de CSS ):
El relleno está dentro de la vista, el margen está afuera. El relleno está disponible para todas las vistas. Dependiendo de la vista, puede haber o no una diferencia visual entre el relleno y el margen.
Para los botones, por ejemplo, la imagen de fondo característica del botón incluye el relleno, pero no el margen. En otras palabras, agregar más relleno hace que el botón se vea visualmente más grande, mientras que agregar más margen solo hace que el espacio entre el botón y el siguiente control sea más amplio.
Para TextView
s, por otro lado, el efecto visual del relleno y el margen es idéntico.
La disponibilidad de margen está determinada por el contenedor de la vista, no por la vista misma. En LinearLayout
margen es compatible, en AbsoluteLayout
(considerado obsoleto ahora) - no.
La imagen de abajo le permitirá comprender el relleno y el margen.
Relleno
El relleno está en el interior de un ejemplo view.For si se le da android:paddingLeft=20dp
, a continuación, los elementos dentro de la vista arreglarán con 20dp
la anchura de left.You también se puede utilizar paddingRight
, paddingBottom
,paddingTop
que son para dar el acolchado de derecha, parte inferior y superior respectivamente.
Margen
Margen está fuera de a View
. Por ejemplo, si das android:marginLeft=20dp
, entonces la vista se organizará después 20dp
desde la izquierda.
Supongamos que tiene un botón en una vista y el tamaño de la vista es 200 por 200, y el tamaño del botón es 50 por 50, y el título del botón es HT. Ahora, la diferencia entre el margen y el relleno es que puede establecer el margen del botón en la vista, por ejemplo 20 desde la izquierda, 20 desde la parte superior, y el relleno ajustará la posición del texto en el botón o la vista de texto, etc. , el valor de relleno es 20 desde la izquierda, por lo que ajustará la posición del texto.
El margen se refiere al espacio extra fuera de un elemento. El relleno se refiere al espacio extra dentro de un elemento. El margen es el espacio extra alrededor del control. El acolchado es espacio extra dentro del control.
Es difícil ver la diferencia con el margen y el relleno con un relleno blanco, pero con un relleno de color puedes verlo bien.
Además de todas las respuestas correctas anteriores, otra diferencia es que el relleno aumenta el área en la que se puede hacer clic en una vista, mientras que los márgenes no . Esto es útil si tiene una imagen en la que se puede hacer clic, pero desea que el controlador de clics sea indulgente.
Por ejemplo, vea esta imagen de mi diseño con un ImageView
(el icono de Android) donde configuré el paddingBotton
ser 100dp
(la imagen es el mipmap del iniciador de acciones ic_launcher
). Con el controlador de clics adjunto pude hacer clic fuera y debajo de la imagen y aún así registrar un clic.
En palabras simples:
En palabras simples: el
relleno cambia el tamaño del cuadro (con algo).
margen cambia el espacio entre diferentes cuadros