Разница между отступами представления и полем - PullRequest
546 голосов
/ 07 января 2011

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

Ответы [ 14 ]

572 голосов
/ 07 января 2011

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

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

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

alt text

539 голосов
/ 27 августа 2014

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

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

Чтобы сделать это более понятным, вот изображение заполнения и поля в TextView:

enter image description here

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>

Относящиеся

72 голосов
/ 07 января 2011

Заполнение находится внутри представления.

Поле находится вне представления.

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

41 голосов
/ 07 января 2011

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

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

Для TextView s, с другой стороны, визуальныйэффект заполнения и поля идентичен.

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

23 голосов
/ 04 февраля 2015

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

enter image description here

7 голосов
/ 01 февраля 2017

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

7 голосов
/ 03 июля 2015

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

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

7 голосов
/ 06 декабря 2012

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

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

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

7 голосов
/ 02 ноября 2012

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

3 голосов
/ 12 сентября 2014

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

...