В чем разница между fill_parent и wrap_content?

голоса
240

В Android, когда макет виджеты, в чем разница между fill_parent( match_parentв уровне API 8 и выше) и wrap_content?

Есть ли какая-либо документация, где вы можете указать? Я заинтересован в понимании это очень хорошо.

Задан 11/01/2009 в 12:14
источник пользователем
На других языках...                            


6 ответов

голоса
240

Либо атрибут может быть применен к (визуальный контроль) горизонтального или вертикального размера вида. Он используется для установки вида или размера Макетов, основанный либо его содержимое или размер его родитель раскладка, а не явно указав размер.

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 здесь .

Ответил 11/01/2009 в 15:51
источник пользователем

голоса
52
  • FILL_PARENT(переименован MATCH_PARENTв уровне API 8 и выше), что означает , что View хочет быть столь же большим , как его родитель (минус дополнение)

  • WRAP_CONTENT, Что означает, что View хочет быть достаточно большим, чтобы вложить его содержание (плюс дополнение)

Ответил 22/08/2010 в 04:43
источник пользователем

голоса
29

fill_parent(устаревшее) =match_parent
Граница зрения ребенка расширяется , чтобы соответствовать границам родительского вида.

wrap_content
Граница зрения ребенка обертывания облегает его собственное содержание.

Вот некоторые изображения , чтобы сделать вещи более ясно. Зеленый и красный TextViews. Белого является LinearLayoutпоказ до конца.

введите описание изображения здесь

Каждый ViewTextView, ImageView, 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 для указанных изображений

Вертикальная 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>

Заметка

Объяснение в этом ответе предполагает , что нет поля или обивки . Но даже если есть, основная концепция остается той же. Вид границы / расстояние регулируется только по значению запаса или дополнения.

Ответил 30/06/2015 в 18:01
источник пользователем

голоса
8
  • fill_parent сделаю ширину или высоту элемента, чтобы быть столь же большим, как родительский элемент, другими словами, контейнер.

  • wrap_content сделаю ширину или высоту быть настолько большой, чтобы при необходимости содержать элементы внутри него.

Нажмите здесь для ANDROID DOC Reference

Ответил 20/06/2013 в 07:11
источник пользователем

голоса
2

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

Ответил 29/01/2015 в 08:53
источник пользователем

голоса
1

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.

Ответил 11/06/2015 в 01:26
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more