В чем разница между полем представления и отступом?
В чем разница между полем представления и отступом?
Ответы:
Чтобы помочь мне вспомнить значение подкладки , я думаю о большом пальто с большим количеством толстой хлопковой подкладки . Я в моем пальто, но я и мой мягкий плащ вместе. Мы единое целое.
Но, вспоминая край , я думаю: « Эй, дай мне немного! » Это пустое пространство между мной и тобой. Не входи в мою зону комфорта - мое поле.
Чтобы сделать это более понятным, вот изображение отступов и полей в 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
(сейчас считается устаревшим) - нет.
Ниже изображение позволит вам понять отступы и поля
Иногда вы можете достичь того же результата, играя только с отступом или полем. Пример :
Скажем, View X содержит представление Y (иначе: View Y находится внутри View X).
-Просмотр Y с полем = 30 ИЛИ Просмотр X с отступом = 30 даст тот же результат: представление Y будет иметь смещение 30.
Padding
Padding находится внутри примера 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
). С прикрепленным обработчиком кликов я смог щелкнуть далеко за пределами изображения и по-прежнему регистрировать клик.
Простыми словами:
Простыми словами:
отступ изменяет размер поля (с чем-то).
поле меняет пространство между разными полями