Ответ
requestLayout() — это метод View, который сообщает системе, что текущий макет View устарел и его нужно пересчитать. Он вызывает onMeasure() и onLayout(), но не onDraw().
Когда использовать:
- Изменились размеры или параметры макета (например,
layout_width/layout_heightпрограммно). - Добавлены/удалены дочерние View.
Нюансы:
- Не вызывает
onDraw(), для этого естьinvalidate(). - Если вызвать несколько раз подряд, система объединит запросы в один проход.
Пример:
view.layoutParams.width = newWidth
view.requestLayout() // Пересчитает размеры и позицию