Яка різниця між маржею подання та прокладкою?
Яка різниця між маржею подання та прокладкою?
Відповіді:
Щоб допомогти мені запам'ятати значення підкладки , я думаю про велике пальто з великою кількістю густих бавовняних накладок . Я всередині свого пальто, але я і моя пуховик разом. Ми підрозділ.
Але щоб запам'ятати запас , я думаю про " Ей, дай мені трохи запасу! " Це порожній простір між мною і тобою. Не заходьте в зону мого комфорту - моя межа.
Щоб зробити це більш зрозумілим, ось малюнок прокладки та запасів у TextView
:
<?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>
Прокладка - це простір всередині кордону, між кордоном та фактичним вмістом перегляду. Зауважте, що прокладка повністю йде навколо вмісту: на верхній, нижній, правій та лівій сторонах є підкладка (яка може бути незалежною).
Поля - це простори поза межами, між кордоном та іншими елементами поруч із цим представленням. На зображенні межа є сірою областю поза всім об'єктом. Зауважте, що, як і підкладка, поле повністю йде навколо змісту: поле вгорі, внизу, вправо та вліво є.
Зображення містить понад 1000 слів (витягнуте з Margin Vs Padding - CSS Properties ):
Прокладка знаходиться в межах зору, запас зовні. Прокладки доступні для всіх видів. Залежно від виду, може бути або не бути візуальною різницею між накладкою та запасом.
Для кнопок, наприклад, характерне фонове зображення кнопки включає в себе набивання, але не поле. Іншими словами, додавання більшої кількості накладок робить вигляд візуально більшим, тоді як додавання більшої запаси просто збільшує розрив між кнопкою та наступним елементом управління.
Для TextView
s, з іншого боку, візуальний ефект прокладки та запасу однаковий.
Доступний чи ні запас, визначається контейнером перегляду, а не самим видом. У LinearLayout
маржі підтримується, в AbsoluteLayout
(вважається застарілим зараз) - ні.
Нижче на малюнку ви зможете зрозуміти прокладки та запаси,
Іноді можна домогтися того ж результату, граючи лише з прокладкою АБО з запасом. Приклад:
Скажіть, вигляд X містить перегляд Y (він же: Вид Y знаходиться всередині Перегляду X).
-Перегляд Y з відривом = 30 АБО Перегляд X з Padding = 30 досягне того ж результату: View Y матиме зміщення 30.
Оббивка
Перетяжка знаходиться всередині прикладу View.For якщо ви даєте android:paddingLeft=20dp
, то елементи всередині уявлення влаштують з 20dp
шириною від left.You можна також використовувати paddingRight
, paddingBottom
,paddingTop
які повинні давати відступи від праворуч, знизу і зверху відповідно.
Маржа
Маржа знаходиться поза межами View
. Наприклад, якщо ви даєте android:marginLeft=20dp
, то подання буде впорядковано після 20dp
зліва.
Припустимо, у вас є кнопка у вікні, розмір представлення - 200 на 200, розмір кнопки - 50 на 50, а назва кнопки - HT. Тепер різниця між полем і накладкою полягає в тому, що ви можете встановити поле кнопки у вікні перегляду, наприклад 20 зліва, 20 зверху, а накладка дозволить регулювати положення тексту на кнопці або перегляд тексту тощо. Наприклад , значення накладки - 20 зліва, тому воно буде коригувати положення тексту.
Поле посилається на додатковий простір поза елементом. Підкладка відноситься до додаткового простору всередині елемента. Поле - це додатковий простір навколо елемента управління. Накладка - це додатковий простір всередині управління.
Важко помітити різницю в запасі і набиванні з білою заливкою, але з кольоровою заливкою ви можете це бачити прекрасно.
Окрім усіх правильних відповідей, наведених вище, одна інша відмінність полягає в тому, що набивання збільшує область перегляду, яку можна натискати, тоді як поля не мають . Це корисно, якщо у вас є невелике зображення, яке можна натискати, але хочете зробити так, щоб обробник кліків пробачив.
Наприклад, див. Це зображення мого макета із ImageView
значком (Android), де я встановивpaddingBotton
, що 100dp
(зображення акції пускова міпмап ic_launcher
). За допомогою прикріпленого обробника кліків я зміг натиснути зображення поза і під зображенням і все-таки зареєструвати клацання.
Простими словами:
Простими словами:
підкладка змінює розмір коробки (з чимось).
поле змінює простір між різними полями