Методы жизненного цикла View, какие есть, зачем нужны?

1. constructor() / init

Что делает: создаёт View, инициализирует поля
Вызывается: при создании View — через XML или программно

Аналогия: ты строишь мебель по инструкции — ещё ничего не стоит, но детали есть.

2. onAttachedToWindow()

Что делает: сообщает, что View добавлена в иерархию окна
Вызывается: после того, как View прикреплена к окну

Аналогия: ты поставил мебель в комнату — теперь она “живая” и часть системы

Полезно для:

  • подписок на LiveData, Flow, BroadcastReceiver
  • запуска анимаций

3. onMeasure(widthSpec, heightSpec)

Что делает: определяет размер View
Вызывается: системой перед размещением View

Аналогия: ты измеряешь ширину и высоту шкафа, прежде чем вставить его в угол

Важно: обязан вызвать setMeasuredDimension(width, height)

4. onLayout(changed, left, top, right, bottom)

Что делает: размещает дочерние View внутри себя
Вызывается: после onMeasure(), если размеры или положение изменились

Аналогия: ты ставишь ящики и полки внутри шкафа

В ViewGroup, обязательно вызываешь child.layout(...)

5. onDraw(canvas)

Что делает: рисует содержимое View
Вызывается: каждый раз, когда нужно перерисовать

Аналогия: ты разукрашиваешь фасад шкафа краской

6. onDetachedFromWindow()

Что делает: сигнализирует, что View удалена из окна
Вызывается: при удалении, уничтожении Activity, Fragment

Аналогия: ты выносишь мебель из комнаты

Здесь: отписываемся от потоков, снимаем слушателей, останавливаем анимации


Опубликовано

в

от

Метки: