Bir Görünümün Dolgusu ile Marjı Arasındaki Fark


566

Bir Görünümün Marjı ile Dolgu arasındaki fark nedir?


10
Dolgu kenarlığın içinde, kenar boşluğu dışında. Ayrıntılar için W3C Kutu modeline bakın. Bu blog yazısı çok daha okunabilir olsa da :-)
Aaron Digulla


3
bu HTML ile aynıdır, daha fazla bilgi için buraya bakın stackoverflow.com/questions/2189452/…
Scott

Benzer soru hakkındaki cevabımı görün stackoverflow.com/questions/21959050/…
Eugene Brusov

Yanıtlar:


568

Dolgunun anlamını hatırlamama yardımcı olmak için , çok kalın pamuklu dolgu ile büyük bir ceket düşünüyorum . Ceketimin içindeyim, ama ben ve yastıklı ceketim birlikteyiz. Biz bir birimiz.

Ama marjı hatırlamak için, " Hey, bana biraz marj verin! " Rahatlık alanımın içine girme - marjım.

Daha açık hale getirmek için, burada bir de dolgu ve marj bir resmi TextView:

resim açıklamasını buraya girin

yukarıdaki resim için xml düzeni

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

İlişkili


578

Dolgu , kenarlığın içinde, kenarlıkla gerçek görünümün içeriği arasındaki alandır. Dolgunun tamamen içeriğin etrafında gittiğine dikkat edin: üst, alt, sağ ve sol taraflarda dolgu var (bağımsız olabilir).

Kenar boşlukları , sınırın dışındaki, sınır ve bu görünümün yanındaki diğer öğeler arasındaki boşluklardır. Görüntüde, kenar boşluğu tüm nesnenin dışındaki gri alandır. Dolgu gibi, kenar boşluğunun tamamen içeriğin etrafında gittiğine dikkat edin: üst, alt, sağ ve sol kenarlarda kenar boşlukları vardır.

Bir resim 1000'den fazla kelime söylüyor ( Margin Vs Padding - CSS Properties'den çıkarıldı ):

alternatif metin


54
Cevap HTML / CSS için, soru Android ile ilgili. Android'in görünüm modelinden HTML'den esinlenildi, ancak aynı değil. Birincisi, sınır orada birinci sınıf büyükçe bir nesne değil.
Seva Alekseyev

48
NOT: Android'de layout_width özelliği içerik ve dolgu içerir. (HTML'de css width özelliği yalnızca içerik genişliğini ifade eder.) Seva'nın dediği gibi Android'de sınır kavramı yerleşik değildir. Android'de kenarlık eklemek için 9 yama png arka plan veya xml vektör çizilebilir kullanabilirsiniz.
SharkAlley

12
Ayrıca, arka planın kenar boşluğuna göre değiştirildiğini ancak dolguya (Android'de) değiştirilmediğini belirtmek gerekir
ArtOfWarfare

Android'de, burada "sınır" olarak adlandırılan şey aslında "görüntüleme kabı" dır. Bu, umduğum bazı şeyleri açıklığa kavuşturmalıdır.
Aç Androider

75

Dolgu bir Görünüm'ün içindedir.

Kenar boşluğu Görünüm'ün dışında.

Bu fark arka plan veya boyut özellikleriyle ilgili olabilir.


41

Dolgu görünüm içinde, kenar boşluğu dışında. Tüm görünümler için dolgu mevcuttur. Görünüme bağlı olarak, dolgu ve kenar arasında görsel bir fark olabilir veya olmayabilir.

Düğmeler için, örneğin, karakteristik düğme arka plan görüntüsü dolgu içerir, ancak kenar boşluğunu içermez. Başka bir deyişle, daha fazla dolgu eklemek düğmenin görsel olarak daha büyük görünmesini sağlarken, daha fazla kenar boşluğu eklemek düğme ve sonraki kontrol arasındaki boşluğu daha da genişletir.

İçin TextViews, diğer taraftan, dolgu ve kenar görsel etkisi aynıdır.

Kenar boşluğunun olup olmadığı görünümün kendisi tarafından değil görünümün kabı tarafından belirlenir. In LinearLayoutkenar boşluğunda, desteklenen AbsoluteLayouthayır - (şimdi eskimiş kabul).



8

Dolgu, widget ve widget orijinal çerçevesi arasındaki boşluk anlamına gelir. Ancak kenar boşluğu, widget'ın orijinal çerçevesi ile diğer widget'ın çerçevesini sınırlayan boşluktur. resim açıklamasını buraya girin.


7

Dolgu, kenarlık içinde gerçek görüntü veya hücre içeriği arasındaki boşluktur. Kenar boşlukları, sınır dışındaki, kenarlık ve bu nesnenin yanındaki diğer öğeler arasındaki boşluklardır.


7

Bazen aynı sonucu sadece dolgu VEYA kenar boşluğu ile oynayarak elde edebilirsiniz. Misal :

Diyelim ki X Görünümü Y görünümünü içerir (aka: Y Görünümü, X Görünümü'nün içindedir).

Kenar Boşluğu = 30 Y ile Görünüm Y = Dolgu = 30 ile Görünüm X aynı sonucu elde edecektir: Görünüm Y 30 ofsetine sahip olacaktır.


7

Doldurma
sen verirsen Geciktirme içinde bir View.For örnek olduğunu android:paddingLeft=20dpdaha sonra iç görünüm ürün ile ayarlayacaktır, 20dpleft.You da kullanabilirsiniz gelen genişliği paddingRight, paddingBottom, paddingTopsırasıyla sağ, alt ve üstten doldurma vermek için hangi.

Marj
Marjı a View. Örneğin android:marginLeft=20dp, verirseniz , görünüm 20dpsoldan sonra düzenlenir .


3

Bir görünümde bir düğmeniz olduğunu ve görünümün boyutunun 200 x 200 olduğunu ve düğmenin boyutunun 50 ila 50 olduğunu ve düğme başlığının HT olduğunu varsayalım. Şimdi kenar boşluğu ve dolgu arasındaki fark, görünümde düğmenin kenar boşluğunu ayarlayabilirsiniz, örneğin soldan 20, üstten 20 ve dolgu, düğmedeki veya metin görünümündeki vb. , dolgu değeri soldan 20'dir, bu nedenle metnin konumunu ayarlayacaktır.


2

Kenar boşluğu, bir öğenin dışındaki fazladan alanı ifade eder. Dolgu, bir eleman içindeki fazladan alanı ifade eder. Marj, kontrolün çevresindeki fazladan boşluktur. Dolgu, kontrolün içinde fazladan boşluktur.

Beyaz bir dolgu ile kenar boşluğu ve dolgu ile farkı görmek zordur, ancak renkli bir dolgu ile iyi görebilirsiniz.


2

Yukarıdaki tüm doğru cevap ek olarak, bir başka fark, yani dolgu , oysa bir görünüm artar tıklanabilir alan kenar değil . Bu, ufacık bir tıklanabilir resminiz varsa ancak tıklama işleyicisini affetmek istiyorsanız yararlıdır.

Örneğin, bir ile benim düzeni bu resmi görmek ImageViewbelirlediğim (Android simgesi) paddingBottonolmak 100dp(görüntü stok başlatıcısı mipmap olan ic_launcher). Ekli tıklama işleyici ile resmin dışına ve altına tıklayabilir ve yine de bir tıklama kaydedebilirim.

resim açıklamasını buraya girin


Pratik ve kullanışlı bir ipucu!
navylover

2

Basit bir ifadeyle:

  1. Dolgu - görünümün kenarlığında boşluk oluşturur.
  2. Kenar Boşluğu - görünümün sınırı dışında boşluk oluşturur.

1

Basit bir deyişle:
dolgu, kutunun boyutunu değiştirir (bir şeyle).
margin farklı kutular arasındaki boşluğu değiştirir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.