В Android, когда размещаются виджеты, в чем разница fill_parent
( match_parent
в API Level 8 и выше) и wrap_content
?
Есть ли документация, на которую вы можете указать? Мне интересно понять это очень хорошо.
android
layout
user-interface
pupeno
источник
источник
fill_parent
было переименованоmatch_parent
в API уровня 8 и выше.Ответы:
Любой атрибут может быть применен к горизонтальному или вертикальному размеру 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
(aTextView
, anImageView
, aButton
и т. Д.) Необходимо установитьwidth
иheight
вид представления. В файле макета XML это может выглядеть так:Помимо установки ширины и высоты
match_parent
илиwrap_content
, вы также можете установить для них некоторое абсолютное значение:Как правило, это не так хорошо, потому что это не так гибко для устройств разных размеров. После того, как вы поняли
wrap_content
иmatch_parent
, следующая вещь, чтобы учитьсяlayout_weight
.Смотрите также
XML для изображений выше
Вертикальный LinearLayout
Горизонтальная LinearLayout
Заметка
Объяснение в этом ответе предполагает, что нет отступов или отступов . Но даже если и есть, основная концепция остается той же. Граница / интервал просмотра просто корректируется по значению поля или отступов.
источник
fill_parent
сделает ширину или высоту элемента такой же, как родительский элемент, другими словами, контейнер.wrap_content
сделает ширину или высоту настолько большими, насколько это необходимо для содержания элементов внутри нее.Нажмите здесь для справки ANDROID DOC
источник
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
источник