Ответы:
Любой атрибут может быть применен к горизонтальному или вертикальному размеру View (визуальный контроль). Он используется для установки размера представления или макетов на основе его содержимого или размера родительского макета, а не для явного указания измерения.
fill_parent
(устарело и переименовано MATCH_PARENT
в API уровня 8 и выше)
Установка макета виджета на fill_parent заставит его расширяться и занимать столько места, сколько доступно в элементе макета, в который он был помещен. Это примерно эквивалентно установке стиля закрепления элемента управления Windows Form Fill
.
Установка макета верхнего уровня или элемента управления для fill_parent заставит его занять весь экран.
wrap_content
Установка размера представления в wrap_content заставит его расширяться только настолько, чтобы содержать значения (или дочерние элементы управления), которые он содержит. Для элементов управления - таких как текстовые поля (TextView) или изображения (ImageView) - это обернет отображаемый текст или изображение. Для элементов макета он изменит размер макета в соответствии с элементами управления / макетами, добавленными в качестве его дочерних элементов.
Это примерно эквивалентно установке для Autosize
свойства Windows Form Control на 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
.
Вертикальный LinearLayout
<?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>
Горизонтальная 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 и выше.