视图和小部件有什么区别?

时间:2012-01-17 18:44:11

标签: android

如果我没有错,View是所有小部件的超类,但我如何区分视图和小部件?例如,按钮或文本框,我应该称它们为什么(视图或小部件)?

5 个答案:

答案 0 :(得分:6)

打电话给他们也没关系。

对于View的子类,我倾向于使用术语“小部件”,默认情况下对用户有可视化表示 - 例如TextViewButton,{{1}等等。

我倾向于使用术语“视图”来表示可能是 ListView的任何子类,包括View之类的纯容器。

但是,再一次,任何一个词都没有特别的伤害。

答案 1 :(得分:5)

视图是UI组件的基本构建块。可以将视图视为屏幕上的矩形,可以绘制自己并处理事件。(1)

所以,没有隐含的"语义"与视图相关联。您基本上可以实现屏幕上显示的任何内容并与用户进行交互。

现在,一个小部件就是你通常认为的"控件"用户通过其与您的应用程序交互。按钮,微调器和复选框都是"小部件"的好例子。但是,这不是一个很难的"定义并没有Android上的Widget类这样的东西。某事物是一个小部件"仅仅意味着该类在android.widgets包中用于组织目的,但它实际上是一个View。

例如,Button的基类是View,而不是android.widgets.Widget(它不存在)。

(1)http://developer.android.com/reference/android/view/View.html

另见: http://developer.android.com/reference/android/view/package-summary.html
http://developer.android.com/reference/android/widget/package-summary.html

答案 2 :(得分:2)

正如View类文档中所述:

  

此类表示用户界面的基本构建块   组件。一个视图在屏幕上占据一个矩形区域   负责绘图和事件处理。 View是基类   小部件,用于创建交互式UI组件(按钮,   文本字段等)。 ViewGroup子类是其基类   布局,是隐藏其他视图的隐形容器(或   其他ViewGroups)并定义它们的布局属性。

因此,View是IU元素的基类,Widget被宽松地定义为任何现成的View。特别是:

查看: View是所有UI元素的基类。因此,它涵盖了许多不同的类和概念,包括窗口小部件,视图组和布局。附加到Window实例的根视图构成了View层次结构的基础。通常,单词View通常用于描述UI元素,或者用于引用抽象或基本UI类(如ViewGroups)。

<强>窗口小部件: 这个术语有各种各样的定义,但大多数都是指“随时可用”的UI元素,无论是Button,ImageView,EditText等。请注意,有些人认为Widgets是完整的UI元素(不是抽象的),不是容器(例如ViewGroups(Layouts / ListViews)。还值得注意的是Widget是一个包名(android.widget),文档中提到了以下内容:

  

小部件包包含(主要是可视的)用于您的UI元素   申请屏幕。

因此,将非可视UI元素也视为Widgets以及在widget包下定义的任何类是合理的。请参阅此处以获取小部件包中的完整类列表:http://developer.android.com/reference/android/widget/package-summary.html

App Widget: 不要与UI元素小部件混淆,App小部件是一个远程的View层次结构,最常显示在用户的主屏幕上。由文档定义:

  

App Widgets是可以嵌入的微型应用程序视图   其他应用程序(如主屏幕)和定期接收   更新。这些视图在用户界面中称为小部件,   并且您可以使用App Widget提供程序发布一个。一个应用程序   能够容纳其他App Widgets的组件称为App   小工具主持人。

<强>的ViewGroup: ViewGroup是View的子类,它提供了父视图和位置子视图的功能,例如Layouts。

布局/查看容器 与Widgets一样,没有Layout基类,因此它可以松散地定义为扩展ViewGroup的任何类,并提供定义子视图在其中的定位的能力。通常只有附加了世界布局的ViewGroup子类(如在LinearLayout,RelativeLayout中)被称为布局,其他扩展ViewGroup的类通常被称为视图容器。

最后,我建议您每当提及“观看”,“窗口小部件”或任何其他重要术语时,都要明确您的预期定义,以便人们可以更好地理解您所指的内容。

进一步阅读: what is the difference between views and widgets difference between view and widget

答案 3 :(得分:0)

将视图视为一个巨大的容器,其中包含占据屏幕上矩形区域并处理绘图和事件处理的任何内容。

虽然小部件是一组可用于构建用户界面的预构建视图,例如按钮,Checkbox,EditText。窗口小部件是视图的子集。

答案 4 :(得分:-1)

窗口小部件是应用程序外部(向用户显示)的视图,用于执行特定功能(启动主应用程序本身或提供应用程序本身的功能),而无需启动应用程序。
例如,时钟小部件显示您没有启动警报或时间应用程序的时间。

可以在以下位置找到更精确的定义:
Definition of widgets