В чем разница между макетом и контейнером в 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, которые не могут быть изменены нашим кодом во время выполнения.