В чем разница между макетом и контейнером в Android?
В Android Studio, в разделе дизайна, макеты и контейнеры классифицируются отдельно.
В чем принципиальная разница между ними?
Ответ 1
Я бы определил различия следующим образом:
Макеты - это общие цели ViewGroups, имеющие непосредственное отношение к графическим представлениям. У них нет требований к тому, с какими детьми они могут управлять.
Контейнеры выполняют более конкретные задачи, поэтому у них есть дополнительные требования о том, сколько и каких детей они могут принять. Из-за этого большинство контейнеров требуют написания классов Adapter, чтобы выразить эти требования.
Ответ 2
Layouts напрямую расширяют ViewGroup. Суффикс Layout является частью имени класса для классов в этой группе, например LinearLayout, RelativeLayout.
Containers - это описание корзины для Views которые обертывают динамический контент. Они более специализированы, чем Layouts и могут, но не обязаны расширять Layout. Некоторые расширяют ViewGroup косвенно, например, ListView, некоторые - например, VideoView. Метка Container используется в Android Studio, но не является частью имени класса.
Ответ 3
A контейнер - это представление, используемое для хранения других представлений. Android предлагает коллекцию классов просмотра, которые выступают в качестве контейнеров для представлений. Эти классы контейнеров называются макетами, и, как следует из названия, они определяют организацию, размер и положение своих представлений своих детей.
Макеты - это в основном контейнеры для других объектов, известных как "Представления", которые отображаются на экране. Макеты также помогают управлять и упорядочивать представления. Макеты определяются в виде файлов XML, которые не могут быть изменены нашим кодом во время выполнения.