Что такое метод onMesure

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

Ответ

Метод onMeasure() в Android используется для измерения размеров View и его дочерних элементов. Он вызывается родительским View для определения требуемых размеров дочернего View на основе переданных ограничений (widthMeasureSpec и heightMeasureSpec).

Основные шаги:

  1. Измерьте размеры содержимого View.
  2. Учтите padding (внутренние отступы).
  3. Установите итоговые размеры через setMeasuredDimension().

Пример:

override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
    val minWidth = 200 // минимальная ширина
    val minHeight = 100 // минимальная высота

    val width = resolveSize(minWidth, widthMeasureSpec)
    val height = resolveSize(minHeight, heightMeasureSpec)

    setMeasuredDimension(width, height)
}

Если не вызвать setMeasuredDimension(), будет выброшено исключение IllegalStateException.