Różnica między wypełnieniem a marginesem widoku
Jaka jest różnica między marginesem a Paddingiem widoku?
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
:
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
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):
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.
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.
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 -
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..
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.
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.
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.
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.
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.
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.
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:
- Padding-tworzy przestrzeń wewnątrz obramowania widoku.
- Margin-tworzy przestrzeń poza obramowaniem widoku.
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