Відповіді:
Будь-який атрибут може бути застосований до горизонтального чи вертикального розміру View (візуальний контроль). Він використовується для встановлення розміру Перегляд або Макетів на основі вмісту або розміру батьківського макета, а не явного введення розміру.
fill_parent
(застаріла і перейменована MATCH_PARENT
в API рівня 8 і вище)
Встановлення макета віджета на fill_parent змусить його розширити, щоб зайняти стільки місця, скільки доступно в елементі макета, в який він розміщений. Це приблизно еквівалентно встановленню док-стилю керування формою Windows Fill
.
Якщо встановити макет верхнього рівня або елемент керування для_захисту, він змусить його зайняти весь екран.
wrap_content
Якщо встановити розмір перегляду wrap_content, він змусить його розширюватися лише досить далеко, щоб містити значення (або дочірні елементи управління), які він містить. Для елементів керування - як текстові поля (TextView) або зображення (ImageView) - це перетворить текст або зображення, що відображаються. Для елементів компонування він змінить розмір макета, щоб відповідати елементам керування / макету, доданим як його дочірнім пристроєм.
Це приблизно еквівалент встановлення властивості Windows Form Control Autosize
для True.
Інтернет-документація
Там якась - то деталь в коді документації Android тут .
fill_parent
(застаріле) =match_parent
Межа дитячого подання розширюється, щоб відповідати межі батьківського подання.
wrap_content
Кордон дитячого зору обертається щільно навколо власного вмісту.
Ось кілька зображень, щоб зробити речі більш зрозумілими. Зелений і червоний є TextViews
. Біле - це LinearLayout
демонстрація наскрізь.
Кожен View
(a TextView
, an ImageView
, a Button
тощо) потребує встановлення width
та height
перегляду. У файлі макета xml це може виглядати приблизно так:
android:layout_width="wrap_content"
android:layout_height="match_parent"
Окрім встановлення ширини та висоти на match_parent
або wrap_content
, ви також можете встановити їх на якесь абсолютне значення:
android:layout_width="100dp"
android:layout_height="200dp"
Взагалі, це не так добре, оскільки воно не настільки гнучко для пристроїв різного розміру. Після того, як ви зрозуміли wrap_content
і match_parent
, наступне, що потрібно дізнатися - це layout_weight
.
Вертикальна лінійна схема
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="width=wrap height=wrap"
android:background="#c5e1b0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="width=match height=wrap"
android:background="#f6c0c0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="width=match height=match"
android:background="#c5e1b0"/>
</LinearLayout>
Горизонтальний лінійний макет
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="WrapWrap"
android:background="#c5e1b0"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="WrapMatch"
android:background="#f6c0c0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="MatchMatch"
android:background="#c5e1b0"/>
</LinearLayout>
Пояснення у цій відповіді передбачає, що немає маржі чи прокладки . Але навіть якщо є, основне поняття все одно те саме. Межа / проміжок перегляду просто регулюється значенням поля або прокладки.
fill_parent
зробить ширину або висоту елемента таким же великим, як батьківський елемент, іншими словами, контейнер.
wrap_content
зробить ширину або висоту настільки великими, як потрібно, щоб містити елементи всередині нього.
fill_parent
:
Компонент, розміщений макет, fill_parent
буде обов'язковим для розширення, щоб заповнити елементи блоку компонування якомога більше місця. Це відповідає властивості dockstyle управління Windows. Верхній макет або елемент керування, щоб fill_parent
змусити його зайняти весь екран.
wrap_content
Налаштування перегляду розміру wrap_content
буде змушене для перегляду розширюється, щоб відображати весь вміст. У TextView і ImageView елементи управління, наприклад, встановлений на wrap_content
відображатиме весь свій внутрішній текст і зображення. Елементи макета змінюватимуть розмір відповідно до вмісту. Налаштуйте подання розміру атрибута Autosize wrap_content
приблизно еквівалентно, щоб встановити елемент управління Windows для True.
Для детальної інформації перегляньте це посилання: http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
fill_parent
перейменованийmatch_parent
на API рівня 8 і вище.