Відповіді:
Вони те саме (в API рівня 8+). Використовуйте match_parent
.
FILL_PARENT (перейменований на MATCH_PARENT в API рівня 8 і вище), що означає, що перегляд хоче бути таким же великим, як його батьківський (мінус прокладки)
...
fill_parent
: Вид повинен бути таким же великим, як його батьківський (мінус прокладки). Ця константа застаріла, починаючи з рівня 8 API і замінюється на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
застаріло в рівні 8 API та MATCH_PARENT
використовує API вищого рівня
Просто, щоб дати йому ім’я ближче до його фактичної дії . "fill_parent"
не заповнює залишок місця, як випливає з назви (для цього ви використовуєте атрибут ваги). Натомість він займає стільки ж місця, як і його батьківський макет. Ось чому нове ім’я"match_parent"
Обидва мають однакову функціональну відмінність лише в тому, що fill_parent використовується до рівня 8 API, а match_parent використовується після рівня 8 API або вище.
Якщо ви встановите макет 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 = 300dp (батьківська висота) - (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
однакові.
Вид повинен бути таким же великим, як його батьківський (мінус прокладки). Ця константа застаріла, починаючи з рівня 8 API і замінюється на {@code match_parent}.
match_parent, що означає, що перегляд хоче бути таким же великим, як його батьківський (мінус прокладки).
wrap_content, що означає, що перегляд хоче бути достатньо великим, щоб укласти його вміст (плюс прокладки)
Задля кращої ілюстрації я створив зразок макета, який демонструє цю концепцію. Щоб побачити його ефект, я додав рамку кожного вмісту textView.
У вмісті textView "Зрівняти батьків" ми бачимо, що його ширина макета поширюється на батьківську по всій довжині.
Але ми можемо бачити вміст textView "Обгортання вмісту", його ширина макета, обгорнута його довжиною контенту (обгортання вмісту).
match_parent
і fill_parent
є тим самим властивістю, яке використовується для визначення ширини чи висоти зображення в повноекранному режимі по горизонталі або вертикалі.
Ці властивості використовуються у таких файлах xroid для 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 рівня 8 і вище), що означає, що перегляд хоче бути таким же великим, як його батьківський (мінус прокладки)
fill_parent
: Вид повинен бути таким же великим, як його батьківський (мінус прокладки). Ця константа застаріла, починаючи з рівня 8 API і замінюється на match_parent
.
Для отримання більш детальної інформації відвідайте цю сторінку
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“, так і в „батьківському збігу“.