Різниця між прокладкою та маржею виду


566

Яка різниця між маржею подання та прокладкою?


10
Прокладка знаходиться всередині кордону, запас зовні. Детальну інформацію див. У моделі W3C Box . Ця публікація набагато читає, хоча :-)
Аарон Дігулла,

2
Це може бути корисним Декларування макета
Шарік Абдулла

3
це те саме, що і HTML, дивіться тут докладніше stackoverflow.com/questions/2189452/…
Скотт

Дивіться мою відповідь на подібне запитання stackoverflow.com/questions/21959050/…
Євген Брусов

Відповіді:


568

Щоб допомогти мені запам'ятати значення підкладки , я думаю про велике пальто з великою кількістю густих бавовняних накладок . Я всередині свого пальто, але я і моя пуховик разом. Ми підрозділ.

Але щоб запам'ятати запас , я думаю про " Ей, дай мені трохи запасу! " Це порожній простір між мною і тобою. Не заходьте в зону мого комфорту - моя межа.

Щоб зробити це більш зрозумілим, ось малюнок прокладки та запасів у TextView:

введіть тут опис зображення

xml макет для зображення вгорі

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

Пов'язані


577

Прокладка - це простір всередині кордону, між кордоном та фактичним вмістом перегляду. Зауважте, що прокладка повністю йде навколо вмісту: на верхній, нижній, правій та лівій сторонах є підкладка (яка може бути незалежною).

Поля - це простори поза межами, між кордоном та іншими елементами поруч із цим представленням. На зображенні межа є сірою областю поза всім об'єктом. Зауважте, що, як і підкладка, поле повністю йде навколо змісту: поле вгорі, внизу, вправо та вліво є.

Зображення містить понад 1000 слів (витягнуте з Margin Vs Padding - CSS Properties ):

alt текст


54
Відповідь - для HTML / CSS, питання стосувалося Android. Модель перегляду Android натхненна HTML, але не є ідентичною. З одного боку, кордон - це не першокласний об'єкт.
Сева Алексєєв

48
ПРИМІТКА. В Android властивість layout_width включає вміст та підкладку. (У HTML властивість ширини css стосується лише ширини вмісту.) Як сказав Сева, Android не має вбудованої концепції меж. Ви можете використовувати 9-патч png-фон або вектор XML для малювання, щоб додати рамку в Android.
SharkAlley

12
Також варто відзначити, що фон модифікується на основі поля, але не
накладки

В Android те, що тут називається "межа", насправді є "контейнером перегляду". Це мало би прояснити речі, на які я б сподівався.
Голодний Андройдер

75

Набивання всередині вигляду.

Поле знаходиться поза Поглядом.

Ця різниця може стосуватися властивостей фону або розміру.


41

Прокладка знаходиться в межах зору, запас зовні. Прокладки доступні для всіх видів. Залежно від виду, може бути або не бути візуальною різницею між накладкою та запасом.

Для кнопок, наприклад, характерне фонове зображення кнопки включає в себе набивання, але не поле. Іншими словами, додавання більшої кількості накладок робить вигляд візуально більшим, тоді як додавання більшої запаси просто збільшує розрив між кнопкою та наступним елементом управління.

Для TextViews, з іншого боку, візуальний ефект прокладки та запасу однаковий.

Доступний чи ні запас, визначається контейнером перегляду, а не самим видом. У LinearLayoutмаржі підтримується, в AbsoluteLayout(вважається застарілим зараз) - ні.



8

Набивання означає простір між віджетом та оригінальним кадром віджета. Але межа - це простір між початковим кадром віджета до меж кадру іншого віджета. введіть тут опис зображення.


7

Прокладка - це простір всередині кордону між кордоном та фактичним зображенням або вмістом комірки. Поля - це простори поза межами, між кордоном та іншими елементами поруч із цим об’єктом.


7

Іноді можна домогтися того ж результату, граючи лише з прокладкою АБО з запасом. Приклад:

Скажіть, вигляд X містить перегляд Y (він же: Вид Y знаходиться всередині Перегляду X).

-Перегляд Y з відривом = 30 АБО Перегляд X з Padding = 30 досягне того ж результату: View Y матиме зміщення 30.


7

Оббивка
Перетяжка знаходиться всередині прикладу View.For якщо ви даєте android:paddingLeft=20dp, то елементи всередині уявлення влаштують з 20dpшириною від left.You можна також використовувати paddingRight, paddingBottom,paddingTop які повинні давати відступи від праворуч, знизу і зверху відповідно.

Маржа
Маржа знаходиться поза межами View. Наприклад, якщо ви даєте android:marginLeft=20dp, то подання буде впорядковано після 20dpзліва.


3

Припустимо, у вас є кнопка у вікні, розмір представлення - 200 на 200, розмір кнопки - 50 на 50, а назва кнопки - HT. Тепер різниця між полем і накладкою полягає в тому, що ви можете встановити поле кнопки у вікні перегляду, наприклад 20 зліва, 20 зверху, а накладка дозволить регулювати положення тексту на кнопці або перегляд тексту тощо. Наприклад , значення накладки - 20 зліва, тому воно буде коригувати положення тексту.


2

Поле посилається на додатковий простір поза елементом. Підкладка відноситься до додаткового простору всередині елемента. Поле - це додатковий простір навколо елемента управління. Накладка - це додатковий простір всередині управління.

Важко помітити різницю в запасі і набиванні з білою заливкою, але з кольоровою заливкою ви можете це бачити прекрасно.


2

Окрім усіх правильних відповідей, наведених вище, одна інша відмінність полягає в тому, що набивання збільшує область перегляду, яку можна натискати, тоді як поля не мають . Це корисно, якщо у вас є невелике зображення, яке можна натискати, але хочете зробити так, щоб обробник кліків пробачив.

Наприклад, див. Це зображення мого макета із ImageViewзначком (Android), де я встановивpaddingBotton , що 100dp(зображення акції пускова міпмап ic_launcher). За допомогою прикріпленого обробника кліків я зміг натиснути зображення поза і під зображенням і все-таки зареєструвати клацання.

введіть тут опис зображення


Практична та корисна порада!
navylover

2

Простими словами:

  1. Прокладка - створює простір усередині межі зору.
  2. Поле - створює простір поза межами виду.

1

Простими словами:
підкладка змінює розмір коробки (з чимось).
поле змінює простір між різними полями

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.