Какие знаешь виды специфики во View

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

Ответ

В Android View есть несколько специфик:

  1. Measure/Layout/Draw - View проходит три этапа отрисовки. Важно не блокировать UI-поток в этих методах.

  2. Invalidate() vs requestLayout():

  • invalidate() - перерисовывает View (вызывает onDraw())
  • requestLayout() - пересчитывает размеры и положение (вызывает onMeasure() и onLayout())
  1. Touch Event Handling - события касания обрабатываются через:
@Override
public boolean onTouchEvent(MotionEvent event) {
    // Обработка касаний
    return true; // потребляем событие
}
  1. Custom Attributes - можно добавлять кастомные атрибуты в XML через declare-styleable.

  2. Hardware Acceleration - некоторые операции (например, setAlpha()) могут вести себя по-разному при включенном аппаратном ускорении.

  3. View Lifecycle - методы типа onAttachedToWindow(), onDetachedFromWindow() помогают управлять ресурсами.