【发布时间】:2015-02-05 18:47:15
【问题描述】:
Android 编程中View 和ViewGroup 有什么区别?
【问题讨论】:
Android 编程中View 和ViewGroup 有什么区别?
【问题讨论】:
View 对象是 Android 中用户界面 (UI) 元素的基本构建块。View 是一个简单的矩形框,可以响应用户的操作。EditText、Button、CheckBox 等。View 指的是 android.view.View 类,它是所有 UI 类的基类。 ViewGroup 是隐形容器。它拥有View 和ViewGroup
LinearLayout 是包含 Button(View) 和其他布局的 ViewGroup。ViewGroup 是布局的基类。【讨论】:
View in turn extends Object,那么你会说Object 是布局的基类吗?
Below image is the answer。不要把它想得太复杂。
【讨论】:
ViewGroup 是一个特殊的视图,可以包含其他视图(称为子视图)。视图组是布局和视图容器的基类。这个类还定义了ViewGroup.LayoutParams 类,它作为布局参数的基类。
View 类代表用户界面组件的基本构建块。 View 在屏幕上占据一个矩形区域,并且是
负责绘图和事件处理。视图是基类
用于创建交互式 UI 组件的小部件
(按钮、文本字段等)。
【讨论】:
View 是 android 中UI(用户界面)的基本构建块。视图是一个响应用户输入的小矩形框。例如:EditText、Button、CheckBox 等。
ViewGroup 是其他视图(子视图)和其他视图组的不可见容器。例如:LinearLayout 是一个视图组,其中可以包含其他视图。
ViewGroup 是一种特殊的视图,它从 View 作为其基类扩展而来。 ViewGroup 是布局的基类。
顾名思义,视图是单数的,视图组是ViewGroup。
更多信息: http://www.herongyang.com/Android/View-ViewGroup-Layout-and-Widget.html
【讨论】:
ViewGroup 本身就是一个View,它可以作为其他视图的容器。它扩展了View 类的功能,以便提供有效的方式来布局子视图。
例如,LinearLayout 是一个 ViewGroup,它允许您定义您希望放置子视图的方向,这就是您需要做的所有事情,而 LinearLayout 将负责其余的工作。
【讨论】:
Viewgroup 继承视图的属性,并与其他视图和视图组一起做更多事情。
查看 Android API:http://developer.android.com/reference/android/view/ViewGroup.html
【讨论】:
在ViewGroup 中,您可以添加一些其他Views 作为孩子。 ViewGroup 是布局和视图容器的基类。
【讨论】:
View 是所有组件的超类,如TextView, EditText, ListView, 等。
而ViewGroup 是 Views(TextView, EditText, ListView, etc..) 的集合,有点像容器。
【讨论】:
View 对象是用户界面 (UI) 的组件,如按钮或文本框,也称为小部件。
ViewGroup 对象是一个布局,即其他 ViewGroup 对象(布局)和 View 对象(小部件)的容器。在另一个布局中可以有一个布局。它被称为嵌套布局,但它会增加绘制用户界面所需的时间。
应用程序的用户界面是使用 ViewGroup 和 View 对象的层次结构构建的。在 Android Studio 中,可以使用 Component Tree 窗口来可视化这个层次结构。
Android Studio 中的布局编辑器可用于在布局中拖放视图对象(小部件)。它简化了布局的创建。
【讨论】:
简单来说View是我们在使用应用程序时与之交互的UI元素,例如按钮,编辑文本和图像等。View是Android.view.View的子类 虽然视图组是包含所有这些视图的容器,除了线性或框架布局等其他视图组之外,还包含其中的所有视图。例如,如果我们将根元素设计为线性布局,现在我们的主要布局是其中的线性布局,我们可以采用另一个视图组(即另一个线性布局)和许多其他视图,如按钮或 textview 等。
【讨论】:
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
【讨论】: