Ответ
View определяет изменения через механизм инвалидации (invalidate() и requestLayout()).
invalidate()помечает область View как "грязную", что приводит к перерисовке в следующем цикле рендеринга (onDraw). Используется при изменении внешнего вида (цвет, текст и т.д.)requestLayout()запускает полный перерасчет layout, включая measure и layout pass. Используется при изменении размеров или структуры.
Пример:
// Просто перерисовка
textView.text = "New text"
textView.invalidate()
// Изменение размеров
textView.layoutParams.width = 200
textView.requestLayout()
Система автоматически вызывает эти методы для стандартных свойств View (setText(), setWidth() и т.д.), но при кастомной отрисовке их нужно вызывать вручную.