Описание тега android-view-invalidate

Сделать недействительным весь вид. Если представление отображается, onDraw(android.graphics.Canvas) будет вызываться в какой-то момент в будущем.

Как правило, invalidate() означает "перерисовку на экране" и приводит к вызову метода представления onDraw(). Поэтому, если что-то изменится, и это нужно отразить на экране, вам нужно вызвать invalidate(). Однако для встроенных виджетов вам редко, если вообще когда-либо, нужно вызывать их самостоятельно. Когда вы изменяете состояние виджета, внутренний код при необходимости вызывает invalidate(), и ваше изменение будет отражено на экране. Например, если вы вызываете TextView.setText() после выполнения большого объема внутренней обработки (поместится ли текст на экране, нужно ли его использовать в многоточии и т. Д.), TextView вызовет invalidate() перед возвратом setText(). Аналогично для других виджетов.

Если вы реализуете настраиваемое представление, вам нужно будет вызывать invalidate() всякий раз, когда модель поддержки изменяется, и вам нужно перерисовать свое представление. Его также можно использовать для создания простых анимаций, в которых вы меняете состояние, затем вызываете invalidate(), снова меняете состояние и т. Д.

Официальная документация