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

В чем разница между полем представления и отступом?

15 ответов

Решение

Чтобы помочь мне вспомнить значение подкладки, я думаю о большом пальто с большим количеством толстой хлопковой подкладки. Я в моем пальто, но я и мой мягкий плащ вместе. Мы единое целое.

Но чтобы вспомнить край, я думаю: "Эй, дай мне немного!" Это пустое пространство между мной и тобой. Не входи в мою зону комфорта - мое поле.

Чтобы сделать это более ясным, вот изображение отступов и полей в 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>

связанные с

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

Поля - это пробелы за пределами границы, между границей и другими элементами рядом с этим видом. На изображении поле - это серая область вне всего объекта. Обратите внимание, что, как и отступы, поле полностью обходит содержимое: поля сверху, снизу, справа и слева.

Изображение говорит более 1000 слов (извлечено из Margin Vs Padding - CSS Properties):

альтернативный текст

Обивка внутри View.

Маржа за пределами просмотра.

Эта разница может относиться к свойствам фона или размера.

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

Например, для кнопок характерное фоновое изображение кнопки включает отступы, но не поле. Другими словами, добавление большего количества отступов делает кнопку визуально больше, в то время как добавление большего поля только увеличивает разрыв между кнопкой и следующим элементом управления.

За TextViews, с другой стороны, визуальный эффект отступов и полей одинаков.

Доступно ли поле или нет, определяется контейнером представления, а не самим представлением. В LinearLayout поле поддерживается, в AbsoluteLayout (считается устаревшим сейчас) - нет.

Ниже изображение позволит вам понять отступы и поля

Заполнение означает пространство между виджетом и исходной рамкой виджета. Но поле - это пространство между исходным кадром виджета и границами кадра другого виджета. ,

набивка
Padding находится внутри View. Например, если вы даете android:paddingLeft=20dp, то элементы в представлении будут 20dp Ширина слева. Вы также можете использовать paddingRight, paddingBottom, paddingTop которые дают отступ справа, снизу и сверху соответственно.

Поле
Маржа за пределами View, Например, если вы даете android:marginLeft=20dp то вид будет упорядочен после 20dp слева.

Заполнение - это пространство внутри границы между границей и фактическим изображением или содержимым ячейки. Поля - это пространство за границей, между границей и другими элементами рядом с этим объектом.

Иногда вы можете достичь того же результата, играя только с отступом или полем. Пример:

Скажем, View X содержит представление Y (иначе: View Y находится внутри View X).

-Просмотр Y с полем =30 ИЛИ Просмотр X с отступом =30 даст тот же результат: представление Y будет иметь смещение 30.

В дополнение ко всем приведенным выше правильным ответам, еще одно отличие состоит в том, что заполнение увеличивает активируемую область представления, в то время какполя- нет. Это полезно, если у вас небольшое кликабельное изображение, но вы хотите, чтобы обработчик кликов был прощающим.

Например, см. Это изображение моего макета с ImageView (значок Android), где я установил paddingBotton быть 100dp (изображение - стоковое фото ic_launcher). С помощью прикрепленного обработчика кликов я смог щелкнуть далеко за пределами изображения и по-прежнему регистрировать клик.

Давайте просто предположим, что у вас есть кнопка в представлении, размер представления составляет 200 на 200, а размер кнопки составляет 50 на 50, а заголовок кнопки - HT. Теперь разница между полем и отступом заключается в том, что вы можете установить поле для кнопки на виде, например, 20 слева, 20 сверху, а отступ будет регулировать положение текста в кнопке или в виде текста и т. Д., Например. Значение отступа равно 20 слева, поэтому оно будет регулировать положение текста.

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

  1. Заполнение - создает пространство внутри границы представления.
  2. Маржа - создает пространство за пределами границы представления.

Маржа относится к дополнительному пространству вне элемента. Заполнение относится к дополнительному пространству внутри элемента. Поле - это дополнительное пространство вокруг элемента управления. Обивка - дополнительное пространство внутри элемента управления.

Трудно увидеть разницу с полями и отступами с белой заливкой, но с цветной заливкой вы можете видеть это прекрасно.

Простыми словами:
padding меняет размер окна (с чем-то).
поле меняет пространство между разными полями

Padding is used to add a blank space between a view and its contents.

Margin is used to add a space between different views.

For both padding and margin, we have two way to set those,

  • setting all sides with equal value
  • setting side specific values as per requirement

All sides with equal values:

You can use android:padding="15dp" for setting padding of 15dp all the sides

and android:layout_margin="15dp" for setting margin of 15dp all the sides

Sides with specific values:

Padding

  • android:paddingBottom Sets the padding at the bottom edge
  • android:paddingStart Sets the padding at the start edge means at the left side of view
  • android:paddingEnd Sets the padding at the end edge means at the right side of view
  • android:paddingTop Sets the padding at the top edge

Margin

  • android:layout_marginBottom Specifies extra space on the bottom side of this view.
  • android:layout_marginEnd Specifies extra space on the end side, means at the right side of this view.
  • android:layout_marginStart Specifies extra space on the start side, means at the left of this view.
  • android:layout_marginTop Specifies extra space on the top side of this view.
Другие вопросы по тегам