В чем разница между заполнением родительского и оберточного содержимого?
В Android, когда макет из виджетов, в чем разница между fill_parent (match_parent в API уровня 8 и выше) и wrap_content?
есть ли какая-либо документация, на которую вы можете указать? Я заинтересован в том, чтобы понять это очень хорошо.
6 ответов:
любой атрибут может быть применен к горизонтальному или вертикальному размеру представления (визуального контроля). Он используется для установки размера представления или макетов на основе его содержимого или размера его родительского макета, а не явного указания размера.
fill_parent(устаревшие и переименованMATCH_PARENTв API уровня 8 и выше)установка макета виджета в fill_parent заставит его расширяться, чтобы занять столько места, сколько доступно в макете элемент, в который он был помещен. Это примерно эквивалентно установке dockstyle элемента управления Windows Form в
Fill.установка макета верхнего уровня или элемента управления для fill_parent заставит его занять весь экран.
wrap_contentустановка размера представления в wrap_content заставит его расширяться только настолько, чтобы содержать значения (или дочерние элементы управления), которые он содержит. Для элементов управления -- как текстовые поля (TextView) или изображения (ImageView) -- это обернуть текст или изображение показывается. Для элементов макета он будет изменять размер макета в соответствии с элементами управления / макетами, добавленными в качестве его дочерних элементов.
это примерно эквивалентно установке элемента управления Windows Form
Autosizeсвойство True.Документации
есть некоторые детали в документации кода Android здесь.
FILL_PARENT(переименован вMATCH_PARENTin Уровень API 8 и выше), что означает что вид хочет быть таким же большим, как его родитель (минус обивка)
WRAP_CONTENT, что означает, что Вид хочет быть просто достаточно большим, чтобы вложите его содержимое (плюс дополнение)
fill_parent(рекомендуется) =match_parent
Граница дочернего представления расширяется в соответствии с границей родительского представления.
wrap_content
Граница представления ребенка плотно обертывается вокруг его собственного содержимого.вот некоторые изображения, чтобы сделать вещи более ясно. Зеленый и красный
TextViews. БелыйLinearLayoutпоказывая через.
каждый
View(aTextView, anImageView, aButtonи т. д.) необходимо установить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.см. также
- что означает android: layout_weight?
- разница между заполнением вида и полями
- тяжести против layout_gravity
XML для вышеуказанных изображений
Вертикальный 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отобразит весь его внутренний текст и изображение. Элементы макета изменят размер в соответствии с содержимым. Настройка представления размера атрибута Autosizewrap_contentпримерно эквивалентно установить элемент управления Windows для True.для получения дополнительной информации, пожалуйста, проверьте эту ссылку : http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
wrap_content в качестве параметров устанавливает размер представления в
minimum required to contain the contents it displays.match_parent
expandsвидto match the available space within the parent View, Fragment, or Activity.

Comments