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

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

Ответ

requestLayout() — это метод View, который сообщает системе, что текущий макет View устарел и его нужно пересчитать. Он вызывает onMeasure() и onLayout(), но не onDraw().

Когда использовать:

  • Изменились размеры или параметры макета (например, layout_width/layout_height программно).
  • Добавлены/удалены дочерние View.

Нюансы:

  • Не вызывает onDraw(), для этого есть invalidate().
  • Если вызвать несколько раз подряд, система объединит запросы в один проход.

Пример:

view.layoutParams.width = newWidth
view.requestLayout() // Пересчитает размеры и позицию