В каком случае будет медленно отрисовываться LinearLayout

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

Ответ

LinearLayout может медленно отрисовываться в следующих случаях:

  1. Глубоко вложенные иерархии - каждый дочерний элемент требует измерения и размещения. Например:
<LinearLayout> <!-- Уровень 1 -->
  <LinearLayout> <!-- Уровень 2 -->
    <LinearLayout> <!-- Уровень 3 -->
      <!-- ... -->
    </LinearLayout>
  </LinearLayout>
</LinearLayout>
  1. Использование weight - приводит к двойному проходу измерения (первый проход игнорирует weight, второй - учитывает).

  2. Много дочерних элементов - каждый элемент измеряется последовательно.

  3. Complex views внутри - если дочерние элементы сами по себе сложные (например, содержат изображения или вложенные ViewGroup).

Для оптимизации стоит использовать RelativeLayout/ConstraintLayout или flatten hierarchy.