with - web android studio




Differenza tra riempimento e margine di una vista (10)

Qual è la differenza tra margine e riempimento di una vista?


A volte è possibile ottenere lo stesso risultato suonando solo con margine OR padding. Esempio :

Say View X contiene la vista Y (aka: View Y is inside View X).

-Visualizza Y con margine = 30 O Visualizza X con riempimento = 30 otterrà lo stesso risultato: la vista Y avrà un offset di 30.


Il riempimento è all'interno della vista, il margine è all'esterno. Il riempimento è disponibile per tutte le viste. A seconda della vista, potrebbe esserci o meno una differenza visiva tra padding e margine.

Per i pulsanti, ad esempio, l'immagine di sfondo del pulsante caratteristico include il padding, ma non il margine. In altre parole, l'aggiunta di più padding rende il pulsante visivamente più grande, mentre l'aggiunta di più margine rende semplicemente più ampio lo spazio tra il pulsante e il controllo successivo.

Per TextView s, d'altra parte, l'effetto visivo di padding e margine è identico.

Se il margine è disponibile o meno è determinato dal contenitore della vista, non dalla vista stessa. In LinearLayout è supportato il margine, in AbsoluteLayout (considerato obsoleto ora) - no.


Il riempimento è lo spazio all'interno del bordo tra il bordo e l'immagine reale o il contenuto della cella. I margini sono gli spazi al di fuori del confine, tra il bordo e gli altri elementi accanto a questo oggetto.


In parole semplici:
il riempimento cambia la dimensione della scatola (con qualcosa).
margine cambia lo spazio tra diverse caselle


Margine si riferisce allo spazio extra al di fuori di un elemento. Il riempimento 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 margine e riempimento con un riempimento bianco, ma con un riempimento colorato puoi vederlo bene.


Oltre a tutte le risposte corrette sopra, un'altra differenza è che il padding aumenta l'area cliccabile di una vista, mentre i margini no. Questo è utile se hai un'immagine cliccabile piuttosto piccola ma vuoi rendere il gestore dei clic che perdona.

Ad esempio, vedere questa immagine del mio layout con un ImageView (l'icona di Android) dove ho impostato il paddingBotton per essere 100dp (l'immagine è il lanciatore di titoli ic_launcher ). Con il gestore di clic allegato sono riuscito a fare clic all'esterno e sotto l'immagine e registrare ancora un clic.


Per aiutarmi a ricordare il significato di imbottitura , penso a un cappotto grande con un sacco di imbottitura 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 margine! " È lo spazio vuoto tra me e te. Non entrare nella mia zona di comfort, il mio margine.

Per rendere più chiaro, ecco un'immagine di padding e margine in una TextView :

layout xml per l'immagine sopra

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

Relazionato

  • Gravità vs layout_gravity
  • Match_parent vs wrap_content

Supponiamo di avere un pulsante in una vista e la dimensione della vista è 200 per 200, e la dimensione del pulsante è 50 per 50, e il titolo del pulsante è HT, ora la differenza tra margine e padding è, puoi impostare il margine del pulsante in vista, ad esempio 20 da sinistra 20 dall'alto, e il padding regoleranno la posizione del testo in pulsante o vista testo ecc. ad esempio, il valore di riempimento è 20 da sinistra. quindi regolerà la posizione del testo.


Imbottitura
Il padding è all'interno di una View.Ad esempio se si android:paddingLeft=20dp , quindi gli elementi all'interno della vista si dispongono con 20dp larghezza di 20dp da sinistra. Puoi anche usare paddingRight , paddingBottom , paddingTop che devono dare il padding da destra, in basso e in alto, rispettivamente.

Margine
Il margine è al di fuori di una View . Ad esempio se android:marginLeft=20dp , la vista sarà sistemata dopo 20dp da sinistra.


In parole semplici:

  1. Riempimento: crea spazio all'interno del bordo della vista.
  2. Margine: crea uno spazio al di fuori del bordo della vista.




margin