Android中View和ViewGroup的区别
Posted
技术标签:
【中文标题】Android中View和ViewGroup的区别【英文标题】:Difference between View and ViewGroup in Android 【发布时间】:2015-02-05 18:47:15 【问题描述】:android 编程中View
和ViewGroup
有什么区别?
【问题讨论】:
***.com/questions/8612774/android-view-and-viewgroup 【参考方案1】:查看
View
对象是 Android 中用户界面 (UI) 元素的基本构建块。
View
是一个简单的矩形框,可以响应用户的操作。
例如EditText
、Button
、CheckBox
等。
View
指的是 android.view.View
类,它是所有 UI 类的基类。
视图组
ViewGroup
是隐形容器。它拥有View
和ViewGroup
例如,LinearLayout
是包含 Button(View) 和其他布局的 ViewGroup
。
ViewGroup
是布局的基类。
【讨论】:
另外我觉得值得注意的是,ViewGroup 是 View 的子类 那么,如果 ViewGroup 是 View 的子类意味着 View 是 Layouts 而不是 ViewGroup 的基类? @Shivanshu 这取决于您所说的“基类”是什么意思。 classView
in turn extends Object
,那么你会说Object
是布局的基类吗?【参考方案2】:
Below image is the answer。不要把它想得太复杂。
【讨论】:
直截了当。图片以非常务实的方式解释它,这很好,但上面答案的定义似乎也是必要的,以便为整个答案添加一些重要的东西。【参考方案3】:ViewGroup
是一个特殊的视图,可以包含其他视图(称为子视图)。视图组是布局和视图容器的基类。这个类还定义了ViewGroup.LayoutParams
类,它作为布局参数的基类。
View
类代表用户界面组件的基本构建块。 View 在屏幕上占据一个矩形区域,并且是
负责绘图和事件处理。视图是基类
用于创建交互式 UI 组件的小部件
(按钮、文本字段等)。
Reference
【讨论】:
【参考方案4】:View
是 android 中UI
(用户界面)的基本构建块。视图是一个响应用户输入的小矩形框。例如:EditText
、Button
、CheckBox
等。
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
中,您可以添加一些其他View
s 作为孩子。 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 中的一行实际上可能在较低级别是水平排列的几个项目。在这种情况下,我会将 Horizontal LinearLayout 作为我的*** Vertical LinearLayout 的子级之一。
嵌套视图组示例: 父 ViewGroup = 垂直线性布局
第 1 行:TextView1 第 2 行:按钮 1 Row3: Image TextView2 Button2 第 4 行:TextView3 第 5 行:按钮 3
【讨论】:
嵌套视图组示例:以上是关于Android中View和ViewGroup的区别的主要内容,如果未能解决你的问题,请参考以下文章