Android中View和ViewGroup的区别

Posted

技术标签:

【中文标题】Android中View和ViewGroup的区别【英文标题】:Difference between View and ViewGroup in Android 【发布时间】:2015-02-05 18:47:15 【问题描述】:

android 编程中ViewViewGroup 有什么区别?

【问题讨论】:

***.com/questions/8612774/android-view-and-viewgroup 【参考方案1】:

查看

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

视图组

    ViewGroup 是隐形容器。它拥有ViewViewGroup 例如,LinearLayout 是包含 Button(View) 和其他布局的 ViewGroupViewGroup 是布局的基类。

【讨论】:

另外我觉得值得注意的是,ViewGroup 是 View 的子类 那么,如果 ViewGroup 是 View 的子类意味着 View 是 Layouts 而不是 ViewGroup 的基类? @Shivanshu 这取决于您所说的“基类”是什么意思。 class View in turn extends Object,那么你会说Object 是布局的基类吗?【参考方案2】:

Below image is the answer。不要把它想得太复杂。

【讨论】:

直截了当。图片以非常务实的方式解释它,这很好,但上面答案的定义似乎也是必要的,以便为整个答案添加一些重要的东西。【参考方案3】:

    ViewGroup 是一个特殊的视图,可以包含其他视图(称为子视图)。视图组是布局和视图容器的基类。这个类还定义了ViewGroup.LayoutParams 类,它作为布局参数的基类。

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

    示例:ViewGroup (LinearLayout)、View (TextView)

Reference

【讨论】:

【参考方案4】:

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

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

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

顾名思义,视图是单数的,视图组是ViewGroup

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

【讨论】:

【参考方案5】:

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

例如,LinearLayout 是一个 ViewGroup,它允许您定义您希望放置子视图的方向,这就是您需要做的所有事情,而 LinearLayout 将负责其余的工作。

【讨论】:

【参考方案6】:

Viewgroup 继承视图的属性,并与其他视图和视图组一起做更多事情。

查看 Android API:http://developer.android.com/reference/android/view/ViewGroup.html

【讨论】:

【参考方案7】:

ViewGroup 中,您可以添加一些其他Views 作为孩子。 ViewGroup 是布局和视图容器的基类。

【讨论】:

【参考方案8】:

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

【讨论】:

【参考方案9】:

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

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

应用程序的用户界面是使用 ViewGroup 和 View 对象的层次结构构建的。在 Android Studio 中,可以使用 Component Tree 窗口来可视化这个层次结构。

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

【讨论】:

【参考方案10】:

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

【讨论】:

【参考方案11】:

ViewGroup 描述了其组中视图的布局。 ViewGroups 的两个基本示例是 LinearLayout 和 RelativeLayout。进一步打破线性布局,您可以拥有垂直线性布局或水平线性布局。如果您选择垂直线性布局,您的视图将垂直堆叠在屏幕上。两个最基本的视图示例是 TextView 和 Button。因此,如果您有一个垂直线性布局的 ViewGroup,您的视图(例如 TextViews 和 Buttons)将垂直排列在您的屏幕下方。

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

嵌套视图组示例: 父 ViewGroup = 垂直线性布局

第 1 行:TextView1 第 2 行:按钮 1 Row3: Image TextView2 Button2 第 4 行:TextView3 第 5 行:按钮 3

【讨论】:

嵌套视图组示例:

以上是关于Android中View和ViewGroup的区别的主要内容,如果未能解决你的问题,请参考以下文章

Android中View和ViewGroup介绍

Android事件分发机制

Android自定义ViewGroup,onMeasureonLayout,实现流式布局

Android-事件分发(ViewGroup)

Android的View和ViewGroup分析

[android] 界面切换的核心方法