От какого класса нужно наследоваться в системе View чтобы создать свой Layout

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

Ответ

Для создания собственного Layout в Android нужно наследоваться от ViewGroup – это базовый класс для всех контейнеров вью.

Пример простого кастомного Layout, который размещает дочерние элементы вертикально:

class VerticalLayout(context: Context, attrs: AttributeSet?) : ViewGroup(context, attrs) {
    override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
        // Логика измерения дочерних элементов
        super.onMeasure(widthMeasureSpec, heightMeasureSpec)
    }

    override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
        // Логика размещения дочерних элементов
    }
}

ViewGroup предоставляет методы onMeasure() и onLayout() для управления размерами и позиционированием дочерних элементов.