Qual è la differenza tra il margine di una vista e il riempimento?
Qual è la differenza tra il margine di una vista e il riempimento?
Risposte:
Per aiutarmi a ricordare il significato dell'imbottitura , penso a un grande cappotto con molte imbottiture di cotone spesso . Sono dentro il mio cappotto, ma io e il mio cappotto imbottito siamo insieme. Siamo un'unità.
Ma per ricordare il margine , penso: " Ehi, dammi un po 'di margine! " È lo spazio vuoto tra me e te. Non entrare nella mia zona di comfort, il mio margine.
Per renderlo più chiaro, ecco un'immagine di riempimento e margine in un 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>
L'imbottitura è lo spazio all'interno del bordo, tra il bordo e il contenuto della vista effettiva. Nota che l'imbottitura ruota completamente attorno al contenuto: c'è un'imbottitura sui lati superiore, inferiore, destro e sinistro (che può essere indipendente).
I margini sono gli spazi esterni al bordo, tra il bordo e gli altri elementi accanto a questa vista. Nell'immagine, il margine è l'area grigia all'esterno dell'intero oggetto. Nota che, come il riempimento, il margine ruota completamente attorno al contenuto: ci sono margini sui lati superiore, inferiore, destro e sinistro.
Un'immagine dice più di 1000 parole (estratte da Margin Vs Padding - Proprietà CSS ):
L'imbottitura è all'interno della vista, il margine è all'esterno. L'imbottitura è disponibile per tutte le viste. A seconda della vista, potrebbe esserci o meno una differenza visiva tra imbottitura e margine.
Per i pulsanti, ad esempio, l'immagine di sfondo del pulsante caratteristico include il riempimento, ma non il margine. In altre parole, l'aggiunta di più padding rende il pulsante visivamente più grande, mentre l'aggiunta di più margine aumenta solo lo spazio tra il pulsante e il controllo successivo.
Per TextView
s, d'altra parte, l'effetto visivo di imbottitura e margine è identico.
La disponibilità del margine è determinata dal contenitore della vista, non dalla vista stessa. In LinearLayout
margin è supportato, in AbsoluteLayout
(considerato ormai obsoleto) - no.
L'immagine sotto ti farà capire l'imbottitura e il margine-
A volte puoi ottenere lo stesso risultato giocando solo con padding O margine. Esempio :
Supponiamo che la vista X contenga la vista Y (ovvero: la vista Y sia all'interno della vista X).
-Visualizza Y con margine = 30 OPPURE La vista X con riempimento = 30 otterrà lo stesso risultato: la vista Y avrà un offset di 30.
Imbottitura
imbottitura è all'interno di un esempio view.For se si dà android:paddingLeft=20dp
, allora gli elementi all'interno della vista provvederà con 20dp
larghezza da left.You può anche utilizzare paddingRight
, paddingBottom
, paddingTop
che devono dare rispettivamente padding da destra, inferiore e superiore.
Margine Il
margine è al di fuori di a View
. Ad esempio, se lo dai android:marginLeft=20dp
, la vista verrà organizzata dopo 20dp
da sinistra.
Supponiamo che tu abbia un pulsante in una vista e che la dimensione della vista sia 200 per 200, e la dimensione del pulsante sia 50 per 50 e il titolo del pulsante sia HT. Ora la differenza tra margine e riempimento è, puoi impostare il margine del pulsante nella vista, ad esempio 20 da sinistra, 20 dall'alto, e il riempimento regolerà la posizione del testo nel pulsante o nella vista del testo ecc. Per esempio , il valore di riempimento è 20 da sinistra, quindi regolerà la posizione del testo.
Il margine si riferisce allo spazio extra esterno a un elemento. L'imbottitura si riferisce allo spazio extra all'interno di un elemento. Il margine è lo spazio extra attorno al controllo. L'imbottitura è spazio extra all'interno del controllo.
È difficile vedere la differenza con il margine e l'imbottitura con un riempimento bianco, ma con un riempimento colorato puoi vederlo bene.
Oltre a tutte le risposte corrette sopra, un'altra differenza è che il riempimento aumenta l'area cliccabile di una vista, mentre i margini no . Questo è utile se hai un'immagine cliccabile di dimensioni ridotte ma vuoi far perdonare il gestore di clic.
Per esempio, vedere questa immagine del mio layout con una ImageView
(l'icona di Android), dove ho impostato l' paddingBotton
ad essere 100dp
(l'immagine è lo stock lanciatore mipmap ic_launcher
). Con il gestore di clic allegato sono stato in grado di fare clic all'esterno e sotto l'immagine e comunque registrare un clic.
In parole semplici:
In parole semplici: il
riempimento cambia la dimensione della scatola (con qualcosa).
il margine cambia lo spazio tra le diverse caselle