В чем разница между match_parent и fill_parent?

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

Solutions Collecting From Web of "В чем разница между match_parent и fill_parent?"

Это одно и то же (в API Level 8+). Используйте match_parent .

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

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

http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html

Google изменило имя, чтобы избежать путаницы.

Проблема с старым именем fill parent заключалась в том, что он подразумевает ее влияние на размеры родителя, в то время как match parent элемент match parent лучше описывает результирующее поведение – сопоставляя измерение с родительским.

Обе константы в конце концов достигают -1 , и поэтому приводят к одинаковому поведению в приложении. Как ни странно, это изменение имени, сделанное для выяснения вещей, похоже, добавило путаницы, а не устранило ее.

Функционально никакой разницы, Google только что изменил имя от fill_parent до match_parent, с уровня API 8 (Android 2.2). FILL_PARENT по-прежнему доступен по соображениям совместимости.

LayoutParams.FILL_PARENT и LayoutParams.MATCH_PARENT имеют значение -1. Не уверен, что соблазнил google для перехода от Fill Parent к Match Parent 🙂

Поскольку большинство phones are >= Android 2.2 .. вы должны использовать Match Parent для будущей совместимости … не уверены, когда они прекратят использование старой константы Fill Parent!

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

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

Для Android API от 1.6 до 2.1 match_parent выдаст вам ошибку, поэтому в этих случаях используйте fill_parent . Чтобы поддерживать обратную совместимость, лучше использовать fill_parent

  • Оба являются статическими конечными константами, которые представляют значение -1
  • FILL_PARENT устарел на уровне API 8

Итак, MATCH_PARENT и FILL_PARENT одинаковы?

Да, MATCH_PARENT и FILL_PARENT – это просто разные постоянные имена для одного и того же целочисленного значения (-1, если вам интересно), используемые для указания режима макета View в его родительском элементе.

Итак, почему был добавлен MATCH_PARENT?

Я помню, что Роман Гай (разработчик Android в Google) сказал, что они изменили имя, потому что « fill_parent » fill_parent для разработчиков. В связи с тем, что « fill_parent » не заполняет оставшееся пространство (для этого вы используете атрибут weight), но он занимает столько места, сколько его родительский макет. Вот почему новое имя « match_parent »

Для обеспечения совместимости лучше придерживаться fill_parent, т. Е. При поддержке ниже устройств API 8. Но если ваше приложение нацелено на API 8 и выше, вы должны использовать match_parent.

MATCH_PARENT и FILL_PARENT одинаковы?

Да, MATCH_PARENT и FILL_PARENT – это просто разные постоянные имена для одного и того же целочисленного значения (-1, если вам интересно), используемые для указания режима макета View в его родительском элементе.

Итак, почему был добавлен MATCH_PARENT ?

Команда Android обнаружила, что разработчики неправильно интерпретировали FILL_PARENT чтобы означать, что View заполнит оставшееся пространство, оставшееся в его родительском. Фактически, указав FILL_PARENT , View запрашивает, чтобы он был таким же большим, как и его родитель. Таким образом (как объяснил сам Ромен Гай в этом видео около 10:56), константа была переименована в MATCH_PARENT чтобы уточнить ее использование.

Хорошо, я получаю, как работает FILL_PARENT/MATCH_PARENT . Какое это имеет значение, если я использую то или другое?

FILL_PARENT устарел. Быть осужденным не делает его дьяволом, но в конце концов он уйдет. Ваше приложение более MATCH_PARENT используя MATCH_PARENT . Зачем использовать устаревшую опцию, когда текущая опция ведет себя точно так же?

Кроме того, FILL_PARENT фактически вводит в заблуждение. Я лично видел людей в замешательстве, потому что это не работает так, как они думали. Фактически, я видел один тег, используя как FILL_PARENT и MATCH_PARENT , потому что разработчик (по понятным причинам) думал, что это два разных режима макета.

КАК ВЫ МОЖЕТЕ ПОЛУЧИТЬ FILL_PARENT ЧТОБЫ ПОЛУЧИТЬ FILL_PARENT ?

Вот краткий пример того, как MATCH_PARENT/FILL_PARENT может привести к тому, что люди неоднократно прикладывают головы к своим столам. Сначала сделайте очень простой макет, содержащий несколько экземпляров View .

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <View android:layout_width="match_parent" android:layout_height="100dp" android:background="#FFFF00" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:background="@android:color/black" android:text="@string/hello_world" android:padding="50dp" /> <View android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FF0000" /> </LinearLayout> 

FILL_PARENT устарел на уровне API 8, а MATCH_PARENT использует API более высокого уровня

Match_parent используется вместо fill_parent и устанавливает, чтобы он доходил до родителя. Просто используйте match_parent и забудьте о fill_parent . Я полностью отбросил fill_parent, и все идеально, как обычно.

Проверьте здесь больше.

Просто, чтобы дать ему имя ближе к его действительному действию . "fill_parent" не заполняет оставшееся пространство, как подразумевалось бы в названии (для этого вы используете атрибут weight). Вместо этого он занимает столько места, сколько его родительский макет. Вот почему новое имя "match_parent"

Оба имеют сходную функциональность, разница только в том, что fill_parent используется до уровня API 8, а match_parent используется после уровня API 8 или более высокого уровня.

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

 <LinearLayout android:layout_width="300dp" android:layout_height="300dp" android:background="#f9b0b0"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:background="#b0f9dc"/> </LinearLayout> 

Харе родитель красный, а ребенок зеленый. Ребенок занимает всю площадь. Потому что width и height соответствуют match_parent .

Введите описание изображения здесь

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

 <LinearLayout android:layout_width="300dp" android:layout_height="300dp" android:background="#f9b0b0" android:paddingTop="20dp" android:paddingBottom="10dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:background="#b0f9dc"/> </LinearLayout> 

Введите описание изображения здесь

Таким образом, TextView hight = 300dp (высота родителя) – (20 (paddingTop) +10 (paddingBottom)) = (300 – 30) dp = 270 dp

Fill_parent Vs match_parent

fill_parent – это предыдущее имя match_parent

Для API уровня 8 и выше fill_parent переименованный как match_parent и fill_parent теперь устарел.

Таким образом, fill_parent и match_parent одинаковы.

Документация API для fill_parent

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

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

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

Для Android API от 1.6 до 2.1 match_parent выдаст вам ошибку, поэтому в этих случаях используйте fill_parent. Чтобы поддерживать обратную совместимость, лучше использовать fill_parent

Оба являются статическими конечными константами, которые представляют значение -1

FILL_PARENT устарел на уровне API 8

SO MATCH_PARENT И FILL_PARENT – это то же самое?

Да, MATCH_PARENT и FILL_PARENT – это просто разные постоянные имена для одного и того же целочисленного значения (-1, если вам интересно), используемые для указания режима макета View в его родительском элементе.

ТАК ПОЧЕМУ БЫЛО MATCH_PARENT ADDED?

Как сказал Роман Гай (разработчик Android в Google), они изменили имя, потому что «fill_parent» запутался для разработчиков. В связи с тем, что «fill_parent» не заполняет оставшееся пространство (для этого вы используете атрибут веса), но он принимает как

match_parent и fill_parent – это те же свойства, которые используются для определения ширины или высоты представления в полноэкранном режиме по горизонтали или по вертикали.

Эти свойства используются в файлах android xml, подобных этому.

  android:layout_width="match_parent" android:layout_height="fill_parent" 

или

  android:layout_width="fill_parent" android:layout_height="match_parent" 

fill_parent использовался в предыдущих версиях, но теперь он устарел и заменен match_parent . Надеюсь, это поможет вам.

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

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

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

Fill parent : использовался до API 8

Match parent Это было использовано из API 8+ Function of Both Заполняет родительский вид в сторону дополнения

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

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

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

В содержимом textView «Match parent» мы видим, что ширина его раскладки из его основной длины.

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

Платформа Android