Да, знаком.
Жизненный цикл View состоит из нескольких ключевых этапов:
measure(int widthMeasureSpec, int heightMeasureSpec)
: Выполняет измерение.onMeasure(int widthMeasureSpec, int heightMeasureSpec)
: Переопределяется для реализации логики измерения.layout(int l, int t, int r, int b)
: Выставляет позицию.onLayout(boolean changed, int l, int t, int r, int b)
: Переопределяется для реализации логики размещения.draw(Canvas canvas)
: Выполняет прорисовку.onDraw(Canvas canvas)
: Переопределяется для реализации логики прорисовки.onAttachedToWindow()
: Вызывается при присоединении.onDetachedFromWindow()
: Вызывается при отсоединении.В процессе жизненного цикла могут происходить запросы на переизмерение (requestLayout()
) или перерисовку (invalidate()
), что приводит к повторному выполнению соответствующих этапов.
Для кастомных View чаще всего переопределяются методы onMeasure
, onLayout
и onDraw
.
Таблица ключевых методов:
| Этап | Метод для измерения | Метод для размещения | Метод для прорисовки | Метод для аттач/деттач | |--------------|---------------------
Да, знаком.
Жизненный цикл View состоит из нескольких ключевых этапов:
measure(int widthMeasureSpec, int heightMeasureSpec)
: Выполняет измерение.onMeasure(int widthMeasureSpec, int heightMeasureSpec)
: Переопределяется для реализации логики измерения.layout(int l, int t, int r, int b)
: Выставляет позицию.onLayout(boolean changed, int l, int t, int r, int b)
: Переопределяется для реализации логики размещения.draw(Canvas canvas)
: Выполняет прорисовку.onDraw(Canvas canvas)
: Переопределяется для реализации логики прорисовки.onAttachedToWindow()
: Вызывается при присоединении.onDetachedFromWindow()
: Вызывается при отсоединении.В процессе жизненного цикла могут происходить запросы на переизмерение (requestLayout()
) или перерисовку (invalidate()
), что приводит к повторному выполнению соответствующих этапов.
Для кастомных View чаще всего переопределяются методы onMeasure
, onLayout
и onDraw
.
Таблица ключевых методов:
| Этап | Метод для измерения | Метод для размещения | Метод для прорисовки | Метод для аттач/деттач | |--------------|---------------------
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.