Какие знаешь методы для обновления View

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

Ответ

invalidate() — запланирует перерисовку View, но не гарантирует немедленное обновление. Работает в UI-потоке.

postInvalidate() — аналог invalidate(), но может вызываться из любого потока.

requestLayout() — пересчитывает размеры и положение View и её дочерних элементов. Вызывает onMeasure(), onLayout(), но не onDraw().

forceLayout() — помечает View для перерасчёта при следующем requestLayout(), но не вызывает его сразу.

Пример:

view.invalidate() // Перерисовка
view.postInvalidate() // Безопасный вызов из фонового потока
view.requestLayout() // Полный перерасчёт макета

Выбор метода зависит от задачи: перерисовка (invalidate), изменение размеров (requestLayout).