Разница между полем просмотра и маржи
В чем разница между маркой View и Padding?
Ответы
Ответ 1
Чтобы помочь мне запомнить смысл дополнений, я думаю о большом пальто с большим количеством толстой хлопковой прокладки . Я внутри пальто, но я и мой мягкий куртка вместе. Мы - подразделение.
Но помнить margin, я думаю, " Эй, дайте мне некоторый запас!" Это пустое пространство между мной и вами. Не заходите в мою зону комфорта - мой запас.
Чтобы сделать это более понятным, вот изображение отступов и полей в 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>
Похожие
Ответ 2
Прокладка - это пространство внутри границы, между границей и фактическим содержимым. Обратите внимание, что заполнение полностью совпадает с содержимым: на верхней, нижней, правой и левой сторонах есть прокладка (которая может быть независимой).
Поля - это пробелы вне границы, между границей и другими элементами рядом с этим представлением. На изображении край является серой областью вне всего объекта. Обратите внимание, что, подобно заполнению, маржа полностью распространяется на содержимое: на верхней, нижней, правой и левой сторонах есть поля.
Изображение содержит более 1000 слов (извлечено из Margin Vs Padding - Свойства CSS):
Ответ 3
Заполнение находится внутри представления.
Маржа находится за пределами представления.
Это различие может иметь отношение к свойствам фона или размера.
Ответ 4
Заполнение находится в пределах представления, маржа находится снаружи. Прокладка доступна для всех видов. В зависимости от вида может быть или не быть визуальное различие между отступом и запасом.
Для кнопок, например, фоновое изображение кнопки характеристики включает в себя дополнение, но не поле. Другими словами, добавление большего количества дополнений делает кнопку визуально более крупной, в то время как добавление большего запаса просто увеличивает разрыв между кнопкой и следующим элементом управления.
Для TextView
s, с другой стороны, визуальный эффект заполнения и поля идентичен.
Доступен ли маржа или нет, определяется контейнером представления, а не самим представлением. В LinearLayout
поддерживается маржа в AbsoluteLayout
(теперь считается устаревшей) - нет.
Ответ 5
Ниже изображение позволит вам понять отступы и поля -
Ответ 6
Заполнение - это пространство внутри границы между границей и фактическим содержимым изображения или ячейки.
Поля - это пробелы вне границы, между границей и другими элементами рядом с этим объектом.
Ответ 7
Иногда вы можете добиться того же результата, играя только с отступом или маржи. Пример:
Say View X содержит вид Y (aka: View Y находится внутри View X).
-View Y с Margin = 30 OR View X с Padding = 30 достигнет того же результата: View Y будет иметь смещение 30.
Ответ 8
Перетяжка
Например, если вы даете android:paddingLeft=20dp
, то элементы внутри представления будут располагаться с шириной 20dp
слева. Вы также можете использовать paddingRight
, paddingBottom
, paddingTop
, которые должны быть дайте отступы справа, снизу и сверху соответственно.
Margin
Маржа находится за пределами View
. Например, если вы дадите android:marginLeft=20dp
, тогда представление будет расположено после 20dp
слева.
Ответ 9
Заполнение означает пробел между виджетами и исходным кадром виджетов. Но маржа - это пробел между исходным фреймом виджета и другими рамками виджетов. .
Ответ 10
Предположим, что у вас есть кнопка в представлении, а размер представления - 200 на 200, а размер кнопки - 50 на 50, а заголовок кнопки - HT, теперь разница между полями и отступом есть, вы может установить маркер кнопки в поле зрения, например, 20 из левого 20 сверху, а отступы будут корректировать текстовую позицию в кнопке или текстовом изображении и т.д., например, значение заполнения составляет 20 слева. поэтому он отрегулирует положение текста.
Ответ 11
Маржа относится к дополнительному пространству вне элемента. Заполнение означает дополнительное пространство внутри элемента. Поля - дополнительное пространство вокруг элемента управления. Прокладка - дополнительное пространство внутри элемента управления.
Трудно видеть разницу с полем и заполнением с белой заливкой, но с цветной заливкой вы можете видеть это хорошо.
Ответ 12
Простыми словами:
padding изменяет размер окна (с чем-то).
margin изменяет пространство между различными ячейками
Ответ 13
В дополнение ко всем правильным ответам выше, еще одно отличие состоит в том, что добавление увеличивает зону просмотра, а поля - нет. Это полезно, если у вас есть маленькое изображение с кликом, но вы хотите, чтобы обработчик кликов прощал.
Например, см. это изображение моего макета с помощью значка ImageView
(значок Android), где я устанавливаю paddingBotton
как 100dp
(изображение представляет собой mipmap пусковой установки ic_launcher
). С помощью прикрепленного обработчика кликов я смог щелкнуть по внешнему и под изображением и все еще зарегистрировать щелчок.
Ответ 14
Простыми словами:
- Заполнение - создает пространство внутри рамки вида.
- Маржа - создает пространство вне границы вида.