Perbedaan antara Padding Tampilan dan Margin

566

Apa perbedaan antara Margin View dan Padding?

Ragunath Jawahar
sumber
10
Padding ada di dalam perbatasan, margin di luar. Lihat model Kotak W3C untuk detailnya. Posting blog ini jauh lebih mudah dibaca :-)
Aaron Digulla
2
Ini mungkin membantu Mendeklarasikan Tata Letak
Sharique Abdullah
3
ini sama dengan HTML, lihat di sini untuk informasi lebih lanjut stackoverflow.com/questions/2189452/...
Scott
Lihat jawaban saya pada pertanyaan serupa stackoverflow.com/questions/21959050/…
Eugene Brusov

Jawaban:

568

Untuk membantu saya mengingat arti bantalan , saya memikirkan mantel besar dengan banyak kapas tebal . Aku ada di dalam mantelku, tapi aku dan mantel empuk bersama-sama. Kami adalah satu unit.

Tetapi untuk mengingat margin , saya berpikir, “ Hei, beri saya sedikit margin! ” Ini adalah ruang kosong antara saya dan Anda. Jangan masuk ke zona nyaman saya - margin saya.

Untuk membuatnya lebih jelas, berikut ini adalah gambar padding dan margin dalam TextView:

masukkan deskripsi gambar di sini

tata letak xml untuk gambar di atas

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

Terkait

Suragch
sumber
578

Padding adalah ruang di dalam perbatasan, antara perbatasan dan konten tampilan yang sebenarnya. Perhatikan bahwa padding sepenuhnya mengelilingi konten: ada padding di bagian atas, bawah, kanan dan kiri (yang bisa independen).

Margin adalah ruang di luar perbatasan, antara perbatasan dan elemen lainnya di sebelah tampilan ini. Dalam gambar, margin adalah area abu-abu di luar seluruh objek. Perhatikan bahwa, seperti padding, margin sepenuhnya mengelilingi konten: ada margin di sisi atas, bawah, kanan, dan kiri.

Sebuah gambar mengatakan lebih dari 1000 kata (diekstrak dari Margin Vs Padding - Properti CSS ):

teks alternatif

Cristian
sumber
54
Jawabannya adalah untuk HTML / CSS, pertanyaannya adalah tentang Android. Model tampilan Android terinspirasi oleh HTML, tetapi tidak identik. Untuk satu hal, perbatasan bukanlah objek kelas satu yang cukup besar di sana.
Seva Alekseyev
48
CATATAN: Di Android, properti layout_width mencakup konten dan padding. (Dalam HTML, properti lebar css hanya mengacu pada lebar konten.) Seperti yang dikatakan Seva, Android tidak memiliki konsep batas bawaan. Anda dapat menggunakan latar belakang png 9-patch atau vektor xml yang dapat digambar untuk menambahkan perbatasan di Android.
SharkAlley
12
Perlu juga dicatat bahwa latar belakang dimodifikasi berdasarkan margin tetapi bukan padding (di Android.)
ArtOfWarfare
Di Android, apa yang di sini disebut sebagai "perbatasan", sebenarnya adalah 'wadah penampil'. Ini seharusnya sedikit memperjelas hal-hal yang saya harap.
The Hungry Androider
75

Padding ada di dalam View.

Margin berada di luar Tampilan.

Perbedaan ini mungkin relevan dengan properti latar belakang atau ukuran.

Floern
sumber
41

Padding ada dalam tampilan, margin di luar. Padding tersedia untuk semua tampilan. Tergantung pada tampilan, mungkin ada atau tidak ada perbedaan visual antara bantalan dan margin.

Untuk tombol, misalnya, gambar latar belakang tombol karakteristik termasuk padding, tetapi tidak margin. Dengan kata lain, menambahkan lebih banyak padding membuat tombol terlihat lebih besar secara visual, sementara menambahkan lebih banyak margin hanya membuat jarak antara tombol dan kontrol selanjutnya lebih lebar.

Untuk TextViews, di sisi lain, efek visual padding dan margin identik.

Tersedia atau tidaknya margin ditentukan oleh wadah tampilan, bukan oleh tampilan itu sendiri. Dalam LinearLayoutmargin didukung, dalam AbsoluteLayout(dianggap usang sekarang) - tidak.

Seva Alekseyev
sumber
25

Gambar di bawah ini akan membuat Anda memahami padding dan margin-

masukkan deskripsi gambar di sini

Akshay Paliwal
sumber
8

Padding berarti ruang antara widget dan bingkai asli widget. Tetapi marginnya adalah ruang antara bingkai asli widget untuk batas-batas bingkai widget lainnya. masukkan deskripsi gambar di sini.

akn
sumber
7

Padding adalah ruang di dalam perbatasan antara perbatasan dan gambar atau isi sel yang sebenarnya. Margin adalah ruang di luar perbatasan, antara perbatasan dan elemen lainnya di sebelah objek ini.

raja
sumber
7

Kadang-kadang Anda dapat mencapai hasil yang sama dengan bermain hanya dengan bantalan ATAU margin. Contoh:

Say View X berisi view Y (alias: View Y ada di dalam View X).

-Lihat Y dengan Margin = 30 ATAU Tampilan X dengan Padding = 30 akan mencapai hasil yang sama: Tampilan Y akan memiliki offset 30.

Akli
sumber
7

Padding
Padding adalah dalam contoh View.For jika Anda memberikan android:paddingLeft=20dp, maka item di dalam pandangan akan mengatur dengan 20dplebar dari left.You juga dapat menggunakan paddingRight, paddingBottom,paddingTop yang memberikan bantalan dari kanan, bawah dan atas masing-masing.

Margin
Margin berada di luar a View. Misalnya jika Anda memberi android:marginLeft=20dp, maka tampilan akan diatur setelah 20dpdari kiri.

jinosh
sumber
3

Anggap saja Anda memiliki tombol dalam tampilan dan ukuran tampilan adalah 200 kali 200, dan ukuran tombol adalah 50 kali 50, dan judul tombol adalah HT. Sekarang perbedaan antara margin dan padding adalah, Anda dapat mengatur margin tombol dalam tampilan, misalnya 20 dari kiri, 20 dari atas, dan padding akan menyesuaikan posisi teks pada tombol atau tampilan teks dll. Misalnya , nilai padding adalah 20 dari kiri, sehingga akan menyesuaikan posisi teks.

Steve
sumber
2

Margin mengacu pada ruang ekstra di luar elemen. Padding mengacu pada ruang ekstra dalam suatu elemen. Margin adalah ruang ekstra di sekitar kontrol. Padding adalah ruang ekstra di dalam kontrol.

Sulit untuk melihat perbedaannya dengan margin dan bantalan dengan isian putih, tetapi dengan isian berwarna Anda dapat melihatnya dengan baik.

Pawan Kumar Singh
sumber
2

Selain semua jawaban yang benar di atas, satu perbedaan lainnya adalah bahwa bantalan meningkatkan area tampilan yang dapat diklik, sedangkan margin tidak . Ini berguna jika Anda memiliki gambar yang dapat diklik bertubuh kecil tetapi ingin membuat penangan klik memaafkan.

Untuk misalnya, melihat gambar ini dari tata letak saya dengan ImageView(ikon Android) di mana saya mengatur paddingBottonuntuk menjadi 100dp(gambar adalah saham peluncur mipmap ic_launcher). Dengan pengendali klik yang terlampir, saya dapat mengklik jauh di luar dan di bawah gambar dan masih mendaftarkan klik.

masukkan deskripsi gambar di sini

scorpiodawg
sumber
Tip praktis dan bermanfaat!
navylover
2

Dengan kata sederhana:

  1. Padding - menciptakan ruang di dalam batas tampilan.
  2. Margin - menciptakan ruang di luar perbatasan tampilan.
mohammed nathar
sumber
1

Dengan kata sederhana:
padding mengubah ukuran kotak (dengan sesuatu).
margin mengubah ruang antara kotak yang berbeda


sumber