Android中View和ViewGroup之间的区别


Answers:


129

视图

  1. View 对象是Android中用户界面(UI)元素的基本构建块。
  2. View 是一个简单的矩形框,用于响应用户的操作。
  3. 例子有EditTextButtonCheckBox等。
  4. View指的是android.view.View类,它是所有UI类的基类。

视图组

  1. ViewGroup是不可见的容器。它拥有ViewViewGroup
  2. 例如,LinearLayoutViewGroup包含Button(View)和其他Layouts的。
  3. ViewGroup 是Layouts的基类。

10
我认为也值得注意的是,ViewGroup是View的子类
Pinkerton

因此,如果ViewGroup是View的子类,则意味着View是布局的基类而不是ViewGroup?
Shivanshu

1
@Shivanshu这取决于您所说的“基类”。该View又扩展Object,所以你会说,Object是布局的基类?
horcrux19年

57

下图是答案。不要太复杂。

在此处输入图片说明


7
开门见山。该图像以非常务实的方式对其进行了解释,这很好,但是为了向整个答案中添加重要内容,上述答案的定义似乎也很有必要。
ivanleoncz

31
  1. A ViewGroup是可以包含其他视图(称为子视图)的特殊视图。视图组是布局和视图容器的基类。此类还定义了ViewGroup.LayoutParams用作布局参数基类的类。

    View类表示用户界面组件的基本构建块。视图在屏幕上占据一个矩形区域,并负责绘制和事件处理。View是小部件的基类,这些小部件用于创建交互式UI组件(按钮,文本字段等)。

  2. 示例:ViewGroup(LinearLayout),View(TextView)

参考


14

ViewUIandroid 中(用户界面)的基本构建块。视图是一个小的矩形框,可响应用户输入。如:EditTextButtonCheckBox等。

ViewGroup是其他视图(子视图)和其他视图组的不可见容器。例如:LinearLayout是一个视图组,其中可以包含其他视图。

ViewGroup是从View作为其基类扩展的一种特殊视图。ViewGroup是布局的基类。

顾名思义,View是单数,View组是ViewGroup

更多信息:http : //www.herongyang.com/Android/View-ViewGroup-Layout-and-Widget.html


4

ViewGroup本身View就是一个容器,可作为其他视图的容器。它扩展了View类的功能,以提供有效的方式来布局子视图。

例如,LinearLayouta ViewGroup是使您可以定义要放置子视图的方向,这就是您需要做的所有LinearLayout工作,其余的工作将由他们来完成。




1

View是All组件的超类,例如,TextView, EditText, ListView,等等。ViewGroup而是Views的集合(TextView, EditText, ListView, etc..),有点像容器。


1

View对象是用户界面(UI)的组件,例如按钮或文本框,也称为小部件。

ViewGroup对象是布局,即其他ViewGroup对象(布局)和View对象(窗口小部件)的容器。有可能在另一个布局内有一个布局。这称为嵌套布局,但它可能会增加绘制用户界面所需的时间。

应用程序的用户界面是使用ViewGroup和View对象的层次结构构建的。在Android Studio中,可以使用“组件树”窗口来可视化此层次结构。

Android Studio中的布局编辑器可用于在布局中拖放View对象(窗口小部件)。它简化了布局的创建。


1

简单来说,View是当我们使用应用程序时与之交互的UI元素,例如按钮,编辑文本和图像等。View是Android.view的子类。View而View组是在其中包含所有这些视图的容器除了几个其他视图组(例如线性或帧布局等)之外,例如,如果我们设计并采用根元素作为线性布局,那么我们的主要布局是内部的线性布局,那么我们可以采用另一个视图组(即另一个线性布局)和许多其他视图组诸如按钮或文本视图等视图


0

ViewGroup在其组中描述视图的布局。ViewGroup的两个基本示例是LinearLayout和RelativeLayout。更进一步,您可以使用Vertical LinearLayout或Horizo​​ntal LinearLayout。如果选择Vertical LinearLayout,则视图将垂直堆叠在屏幕上。视图的两个最基本的示例是TextView和Button。因此,如果您有一个VerticalLinearLayout的ViewGroup,则您的视图(例如TextViews和Buttons)将垂直向下排列在屏幕上。

当其他张贴者显示嵌套的ViewGroups时,它们的意思是,例如,我的Vertical LinearLayout中的一行实际上可能在较低级别上是水平排列的多个项目。在这种情况下,我将使用Horizo​​ntal LinearLayout作为我的顶层Vertical LinearLayout的子级之一。

嵌套视图组的示例:
父视图组=垂直LinearLayout

第1
行:TextView1第2 行:Button1第
3 行:图像TextView2 Button2 <-水平线性嵌套在垂直线性中第4
行:TextView3第5
行:Button3


1
嵌套视图组的示例:
sv数学家教
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.