Różnica między wypełnieniem a marginesem widoku

Jaka jest różnica między marginesem a Paddingiem widoku?

Author: casperOne, 2011-01-06

14 answers

Aby pomóc mi przypomnieć sobie znaczenie wyściółki , myślę o dużym płaszczu z dużą ilościągrubej bawełnianej wyściółki . Jestem w moim płaszczu, ale ja i mój wyściełany płaszcz jesteśmy razem. Jesteśmy jednostką.

Ale żeby pamiętaćmargines, myślę: "Hej, daj mi trochę marginesu!"To pusta przestrzeń między mną a tobą. Nie wchodź do mojej strefy komfortu ... mojego marginesu.

Aby było to bardziej jasne, Oto zdjęcie padding i margin w TextView:

Tutaj wpisz opis obrazka

Układ Xml dla powyższego obrazka

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

Powiązane

 586
Author: Suragch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:37

Padding to przestrzeń wewnątrz obramowania, pomiędzy obramowaniem a rzeczywistą zawartością widoku. Należy pamiętać, że padding jest całkowicie wokół zawartości: jest padding na górze, na dole, po prawej i lewej stronie (które mogą być niezależne).

Marginesy są spacjami poza obramowaniem, między obramowaniem a innymi elementami obok tego widoku. Na zdjęciu margines jest szarą strefą na zewnątrz całego obiektu. Zauważ, że podobnie jak wyściółka, margines przechodzi całkowicie wokół treści: są marginesy na górze, na dole, po prawej i lewej stronie.

Obraz mówi więcej niż 1000 słów (wyodrębnione z margines Vs Padding-właściwości CSS):

alt text

 581
Author: Cristian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-09 12:16:45

Wyściółka jest wewnątrz widoku.

Margines jest poza widokiem.

Ta różnica może mieć znaczenie dla właściwości tła lub rozmiaru.

 76
Author: Floern,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-07 08:24:38

Padding jest w widoku, margines jest na zewnątrz. Padding jest dostępny dla wszystkich widoków. W zależności od widoku może istnieć wizualna różnica między wypełnieniem a marginesem.

Dla przycisków, na przykład, charakterystyczny obraz tła przycisku zawiera wypełnienie, ale nie margines. Innymi słowy, dodanie większej liczby wypełnień sprawia, że przycisk wygląda wizualnie większy, a dodanie większego marginesu powoduje, że odstęp między przyciskiem a następną kontrolką jest szerszy.

Dla TextView s, na z drugiej strony efekt wizualny paddingu i marginesu jest identyczny.

To, czy margines jest dostępny, zależy od kontenera widoku, a nie od samego widoku. W LinearLayout margines jest obsługiwany, w AbsoluteLayout (obecnie uważany za przestarzały) - nie.

 41
Author: Seva Alekseyev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-25 16:12:53

Poniżej obrazek pozwoli Ci zrozumieć padding i margines -

Tutaj wpisz opis obrazka

 25
Author: Akshay Paliwal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-23 04:25:12

Padding oznacza odstęp między widżetem a ramką oryginalną widżetu. Ale margines jest odstępem między oryginalną ramką widżetu do granic ramki innego widżetu.Tutaj wpisz opis obrazka.

 8
Author: mindus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-01 06:06:50

Padding to przestrzeń wewnątrz obramowania między obramowaniem a rzeczywistą zawartością obrazu lub komórki. Marginesy to przestrzenie poza obramowaniem, między obramowaniem a innymi elementami obok tego obiektu.

 7
Author: raja,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-02 08:19:43

Czasami można osiągnąć ten sam wynik, grając tylko z padding lub marginesem. Przykład:

Powiedzmy, że Widok X zawiera widok Y (aka: Widok Y jest wewnątrz widoku X).

- widok Y z marginesem = 30 lub widok X z wypełnieniem = 30 osiągnie ten sam wynik: Widok Y będzie miał przesunięcie 30.

 7
Author: Akli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-09 13:32:12

Padding
Wyściółka jest wewnątrz widoku.Na przykład, jeśli podasz android:paddingLeft=20dp, wtedy elementy wewnątrz widoku będą rozmieszczone z 20dp szerokością od lewej.Możesz również użyć paddingRight, paddingBottom, paddingTop które mają dać wyściółkę odpowiednio od prawej, dołu i góry.

Margines
Margines jest poza View. Na przykład jeśli podasz android:marginLeft=20dp, wtedy widok będzie ułożony po 20dp od lewej.

 7
Author: Jinosh P,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-03 07:59:00

Załóżmy, że masz przycisk w widoku i rozmiar widoku wynosi 200 na 200, a rozmiar przycisku wynosi 50 na 50, a tytuł przycisku to HT. Teraz różnica między marginesem i padding jest, można ustawić margines przycisku w widoku, na przykład 20 od lewej, 20 od góry, a padding dostosuje pozycję tekstu w przycisku lub widoku tekstowym itp. na przykład wartość wypełnienia wynosi 20 od lewej, więc dostosuje pozycję tekstu.

 3
Author: Steve,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-28 09:28:36

Margines odnosi się do dodatkowej przestrzeni poza elementem. Wyściółka odnosi się do dodatkowej przestrzeni wewnątrz elementu. Margines jest dodatkową przestrzenią wokół sterowania. Wyściółka to dodatkowa przestrzeń wewnątrz sterowania.

Trudno dostrzec różnicę z marginesem i wyściółką z białym wypełnieniem, ale z kolorowym wypełnieniem widać to dobrze.

 2
Author: Pawan Kumar Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-03 02:56:59

Oprócz wszystkich poprawnych odpowiedzi powyżej, inną różnicą jest to, że padding zwiększa klikalny obszar widoku, podczas gdy marginesy nie. Jest to przydatne, jeśli masz mały klikalny obraz, ale chcesz, aby obsługa kliknięć wybaczyła.

Na przykład zobacz ten obrazek mojego układu z ImageView (ikona Androida), gdzie ustawiłem paddingBotton na 100dp (obrazek jest stock launcher mipmap ic_launcher). Za pomocą załączonego programu obsługi kliknięć udało mi się kliknąć Na zewnątrz i pod obrazem i nadal zarejestrować kliknięcie.

Tutaj wpisz opis obrazka

 2
Author: scorpiodawg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-08 20:27:16

W prostych słowach:

  1. Padding-tworzy przestrzeń wewnątrz obramowania widoku.
  2. Margin-tworzy przestrzeń poza obramowaniem widoku.
 2
Author: mohammed nathar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-28 05:51:36

W prostych słowach:
padding zmienia rozmiar pudełka (z czymś).
margines zmienia odstęp między różnymi polami

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-02 11:12:35