В чем разница между match_parent и fill_parent? - PullRequest
1351 голосов
/ 23 апреля 2011

Меня немного смущают два свойства XML: match_parent и fill_parent.Кажется, что оба одинаковы.Есть ли разница между ними?

Ответы [ 16 ]

3 голосов
/ 26 июля 2017

match_parent, что означает, что представление хочет быть таким же большим, как его родитель (минус отступ).

wrap_content, что означает, что представление хочет быть достаточно большим, чтобы вместить его содержимое (плюс заполнение)

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

В содержимом textView «Соответствие родителя» мы видим, как ширина макета распределена по всей длине родительского элемента.

Но мы можем видеть в текстовом представлении «Wrap Content» его ширину макета, завернутую в длину его содержимого (Wrap Content).

Android Layout

3 голосов
/ 28 мая 2017

Мне заполнить родительский и сопоставить родительский выполняет ту же функцию, только что:

заполнить родительский : использовался до API 8

соответствует родительскому элементу Это было использовано из API 8+ Функция обоих Заполняет родительское представление кроме отступов

3 голосов
/ 01 мая 2017

fill_parent: представление должно быть таким же большим, как и его родитель.

теперь этот контент fill_parent устарел и заменен на match_parent.

2 голосов
/ 14 ноября 2018

FILL_PARENT устарело с уровня API 8 и выше и переименовано для старших версий в MATCH_PARENT

Оба одинаковы FILL_PARENT и MATCH_PARENT, FILL_PARENT использовался в более низкой версии меньше, чем уровень API 8, а MATCH_PATENT использовался в более высоком уровне API, превышающий 8.

FILL_PARENT (переименовано MATCH_PARENT в API уровня 8 и выше), что означает, что представление хочет быть таким же большим, как его родитель (минус отступ)

fill_parent: представление должно быть таким же большим, как его родитель (минус отступ). Эта константа не рекомендуется, начиная с уровня API 8, и заменяется на match_parent.

Для получения более подробной информации, пожалуйста, посетите эту страницу

2 голосов
/ 13 ноября 2017

FILL_PARENT был переименован в MATCH_PARENT в API уровня 8 и выше, что означает, что представление хочет быть таким же большим, как его родитель (без отступов) - Google

0 голосов
/ 31 октября 2018

1. match_parent

Когда вы устанавливаете ширину и высоту макета в качестве match_parent, он будет занимать всю область, которую имеет родительское представление, то есть оно будет таким же большим, как родительское представление.

Примечание : Если для родительского элемента применяется отступ, то это пространство не будет включено.

Когда мы создаем layout.xml по умолчанию, мы имеем RelativeLayout в качестве родительского представления по умолчанию с android: layout_width = "match_parent" и android: layout_height = "match_parent", т.е. он занимает всю ширину и высоту экрана мобильного устройства.

Также обратите внимание, что отступ применяется ко всем сторонам,

android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"

Теперь давайте добавим вспомогательное представление LinearLayout и установим его layout_width = "match_parent" и layout_height = "match_parent", графическое представление будет отображать что-то вроде этого,

match_parent_example

код

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.code2care.android.togglebuttonexample.MainActivity" >

android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="11dp"
android:background="#FFFFEE"
android:orientation="vertical" >

2. fill_parent:

Это то же самое, что match_parent, fill_parent устарел на уровне API 8. Поэтому, если вы используете API уровня 8 или выше, вы должны избегать использования fill_parent

Давайте сделаем те же шаги, что и для match_parent, вместо этого везде будем использовать fill_parent.

Вы увидите, что нет различий в поведении как в fill_parent, так и в match parent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...