Ответы:
Это одно и то же (в API уровня 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
-1
. Если вы чувствуете себя лучше по этому поводу, я тоже не получаю приличия ... :-)
-1
. Вы получаете ошибку, потому что старая платформа не знает о новом имени той же самой константы.
Google изменил имя, чтобы избежать путаницы.
Проблема со старым именем fill 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, т.е. при поддержке устройств ниже API 8. Но если ваше приложение предназначено для API 8 и выше, вы должны использовать match_parent.
FILL_PARENT
это устарело (как упомянуто Мэттом Боллом выше), то единственная опция для прямой совместимости - это MATCH_PARENT
.
FILL_PARENT
устарела на уровне API 8 и MATCH_PARENT
использует API более высокого уровня
Просто чтобы дать ему имя ближе к его действию . "fill_parent"
не заполняет оставшееся место, как следует из названия (для этого вы используете весовой атрибут). Вместо этого он занимает столько же места, сколько родительский макет. Вот почему новое имя"match_parent"
Оба имеют схожую функциональность, единственное отличие состоит в том, что fill_parent используется до уровня API 8, а match_parent используется после уровня API 8 или выше.
Когда вы устанавливаете макет width
и height
как 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 (родительский hight) - (20 (paddingTop) +10 (paddingBottom)) = (300 - 30) dp = 270 dp
fill_parent
предыдущее имя match_parent
Для API уровня 8 и выше fill_parent
переименован в match_parent
и fill_parent
устарел.
Так fill_parent
и match_parent
есть одно и то же.
Представление должно быть таким же большим, как его родитель (за исключением заполнения). Эта константа не рекомендуется, начиная с уровня API 8, и заменяется на {@code match_parent}.
match_parent, что означает, что представление хочет быть таким же большим, как его родитель (минус отступ).
wrap_content, что означает, что представление хочет быть достаточно большим, чтобы заключить его содержимое (плюс заполнение)
Для лучшей иллюстрации я создал образец макета, который демонстрирует эту концепцию. Чтобы увидеть его эффект, я добавил границы каждого содержимого textView.
В текстовом представлении «Соответствие родителя» мы видим, как ширина макета распределяется по всей длине родительского элемента.
Но мы можем видеть в текстовом представлении «Wrap Content» его ширину макета, завернутую в длину его содержимого (Wrap Content).
match_parent
и fill_parent
являются тем же свойством, используемым для определения ширины или высоты просмотра в полноэкранном режиме по горизонтали или вертикали.
Эти свойства используются в XML-файлах Android, как это.
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 был переименован в MATCH_PARENT в API уровня 8 и выше, что означает, что представление хочет быть таким же большим, как его родитель (минус отступ) - Google
FILL_PARENT
устарел с уровня API 8 и выше и переименован для более высоких версий как MATCH_PARENT
Оба такие же , FILL_PARENT
и MATCH_PARENT
, FILL_PARENT
был использован в более низкой версии меньше , чем уровень API 8 и MATCH_PATENT используются в более высоком уровне API , больше 8.
FILL_PARENT
(переименован MATCH_PARENT
в API Level 8 и выше), что означает, что представление хочет быть таким же большим, как его родитель (минус отступ)
fill_parent
: Представление должно быть таким же большим, как его родитель (без отступов). Эта константа не рекомендуется, начиная с уровня API 8, и заменяется на match_parent
.
Для более подробной информации, пожалуйста, посетите эту страницу
1. match_parent
Когда вы устанавливаете ширину и высоту макета как match_parent, он будет занимать всю область, которую имеет родительское представление, то есть он будет таким же большим, как родительский.
Примечание . Если для родительского элемента применяется отступ, то это пространство не будет включено.
Когда мы создаем layout.xml по умолчанию, мы имеем RelativeLayout в качестве родительского View по умолчанию с 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.