Что такое wrap_content

«Что такое wrap_content» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

wrap_content — это значение, которое можно задать для ширины (android:layout_width) или высоты (android:layout_height) View в XML-разметке. Оно указывает, что размер View должен быть ровно таким, чтобы вмещать его содержимое (например, текст в TextView или дочерние элементы в ViewGroup), но не больше родительского контейнера.

Пример:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!" />

Здесь TextView займет ровно столько места, сколько нужно для отображения текста "Hello World!".

Нюансы:

  • Если содержимое View динамически меняется (например, текст подгружается из сети), размер View также изменится.
  • Для ViewGroup (например, LinearLayout) wrap_content учитывает размеры всех дочерних View + padding.
  • Если содержимое слишком большое, оно может выйти за границы экрана (если не ограничено maxWidth/maxHeight).