Какие знаешь стадии отрисовки View

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

Ответ

В Android отрисовка View проходит через три основные стадии:

  1. Measure - измерение размеров View. Вызывается onMeasure(), где View определяет свои размеры с учетом constraints от родителя.

  2. Layout - размещение View. Вызывается onLayout(), где View размещает свои дочерние элементы, используя измеренные размеры.

  3. Draw - отрисовка View. Вызывается onDraw(), где View рисует себя на Canvas.

Пример:

override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
    // Расчет размеров
    setMeasuredDimension(calculatedWidth, calculatedHeight)
}

override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) {
    // Размещение дочерних View
    childView.layout(childLeft, childTop, childRight, childBottom)
}

override fun onDraw(canvas: Canvas) {
    // Отрисовка
    canvas.drawColor(Color.RED)
}