Разница между View и ViewGroup в Android

Ответы:

130

Посмотреть

  1. View Объекты являются основными строительными блоками элементов пользовательского интерфейса (UI) в Android.
  2. View представляет собой простую прямоугольную рамку, которая реагирует на действия пользователя.
  3. Примерами являются EditText, Button, и CheckBoxт.д ..
  4. Viewотносится к android.view.Viewклассу, который является базовым классом всех классов пользовательского интерфейса.

ViewGroup

  1. ViewGroupэто невидимый контейнер. Он держит ViewиViewGroup
  2. Например, LinearLayoutэто тот, ViewGroupкоторый содержит кнопку (вид), а также другие макеты.
  3. ViewGroup является базовым классом для макетов.
Сайбаба Вали
источник
10
Также я думаю, что стоит отметить, что ViewGroup является подклассом View
Pinkerton
Итак, если ViewGroup является подклассом View, значит, View является базовым классом для макетов, а не ViewGroup?
Шиваншу
1
@Shivanshu Это зависит от того, что вы подразумеваете под "базовым классом". Класс Viewв свою очередь , расширяетObject , так бы вы сказали , что Objectэто базовый класс для макетов?
крестраж
59

Изображение ниже - ответ . Не воспринимайте это слишком сложно.

введите описание изображения здесь

кендзю
источник
7
Прямо к сути. Изображение объясняет это очень прагматично, что хорошо, но определение приведенного выше ответа кажется также необходимым для того, чтобы добавить что-то важное к ответу в целом.
ivanleoncz
31
  1. A ViewGroup- это специальное представление, которое может содержать другие представления (называемые дочерними). ​​Группа представлений - это базовый класс для макетов и контейнеров представлений. Этот класс также определяетViewGroup.LayoutParams класс, который служит базовым классом для параметров макетов.

    ViewКласс представляет собой базовый строительный блок для компонентов пользовательского интерфейса. Представление занимает прямоугольную область на экране и отвечает за рисование и обработку событий. View - это базовый класс для виджетов, которые используются для создания интерактивных компонентов пользовательского интерфейса (кнопок, текстовых полей и т. Д.).

  2. Пример: ViewGroup (LinearLayout), View (TextView)

Справка

Мунаввар Хуссейн Шелия
источник
14

Viewявляется основным строительным блоком UI(пользовательского интерфейса) в android. Представление - это небольшое прямоугольное поле, которое реагирует на ввод данных пользователем. Например: EditText, Button, CheckBoxи т.д ..

ViewGroupэто невидимый контейнер для других представлений (дочерних представлений) и других групп представлений. Например:LinearLayout это группа просмотра, которая может содержать в себе другие представления.

ViewGroup- это особый вид представления, который расширен от View как его базового класса. ViewGroupявляется базовым классом для макетов.

как указано в названии View является единственным, а группа Views - это ViewGroup.

дополнительная информация: http://www.herongyang.com/Android/View-ViewGroup-Layout-and-Widget.html

MS Gadag
источник
4

ViewGroupсам по себе Viewработает как контейнер для других представлений. Расширяет функциональностьView класса, чтобы обеспечить эффективные способы компоновки дочерних представлений.

Например, LinearLayoutэто ViewGroupпозволяет вам определять ориентацию, в которой вы хотите, чтобы дочерние представления были размещены, это все, что вам нужно сделать, и LinearLayoutвы позаботитесь обо всем остальном.

Варундроид
источник
2

в ViewGroupвы можете добавить еще несколько Viewдочерних элементов. ViewGroupявляется базовым классом для макетов и контейнеров представлений.

Мохаммад Рахчамани
источник
1

View- это компонент SuperClass of All, например, и TextView, EditText, ListView,т. д., а ViewGroupCollection of Views (TextView, EditText, ListView, etc..), что-то вроде контейнера.

Прашант Джаджал
источник
1

Объект View - это компонент пользовательского интерфейса (UI), такой как кнопка или текстовое поле, и он также называется виджетом.

Объект ViewGroup - это макет, то есть контейнер для других объектов ViewGroup (макетов) и объектов View (виджетов). Возможно размещение макета внутри другого макета. Это называется вложенным макетом, но он может увеличить время, необходимое для рисования пользовательского интерфейса.

Пользовательский интерфейс приложения построен с использованием иерархии объектов ViewGroup и View. В Android Studio можно использовать окно дерева компонентов для визуализации этой иерархии.

Редактор макета в Android Studio можно использовать для перетаскивания объектов просмотра (виджетов) в макет. Это упрощает создание макета.

Барт
источник
1

Проще говоря, View - это элемент пользовательского интерфейса, с которым мы взаимодействуем, когда используем приложение, например кнопку, редактируем текст, изображение и т. Д. View - это дочерний класс Android.view.View, а группа View - это контейнер, который содержит все эти представления внутри это в дополнение к нескольким другим группам просмотра, таким как линейный макет или макет кадра и т. д. Пример, если мы проектируем и берем корневой элемент как линейный макет, теперь наш основной макет является линейным макетом, внутри него мы можем взять другую группу просмотра (то есть еще один линейный макет) и многие другие такие виды, как кнопки или текстовое представление и т. д.

Бхупиндер Сингх
источник
0

ViewGroup описывает макет представлений в своей группе. Двумя основными примерами ViewGroups являются LinearLayout и RelativeLayout. Если еще больше нарушить LinearLayout, у вас может быть либо Vertical LinearLayout, либо Horizontal LinearLayout. Если вы выберете Vertical LinearLayout, ваши представления будут располагаться вертикально на вашем экране. Двумя наиболее простыми примерами представлений являются TextView и Button. Таким образом, если у вас есть ViewGroup с Vertical LinearLayout, ваши представления (например, TextViews и кнопки) будут выстраиваться вертикально вниз по экрану.

Когда другие плакаты показывают вложенные ViewGroup, они означают, например, что одна из строк в моем Vertical LinearLayout может фактически на нижнем уровне состоять из нескольких элементов, расположенных горизонтально. В этом случае у меня будет Horizontal LinearLayout как один из потомков моего Vertical LinearLayout верхнего уровня.

Пример вложенных групп просмотра:
Parent ViewGroup = Vertical LinearLayout

Row1: TextView1
Row2: Button1
Row3: Image TextView2 Button2 <- горизонтальный линейный вложенный в вертикальный линейный
Row4: TextView3
Row5: Button3

sv Репетитор по математике
источник
1
Пример вложенных групп просмотра:
sv Math Tutor