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

Android 视图和小部件之间有什么区别?,android,Android,如果我没有错的话,View是所有小部件的超类,但是如何区分视图和小部件呢?例如,一个按钮或一个文本框,我应该怎么称呼它们(视图或小部件)?调用它们都可以 我倾向于将术语“widget”用于默认情况下对用户具有可视表示的视图的子类,例如文本视图,按钮,列表视图,等等 我倾向于使用术语“视图”来表示可以是view的任何子类的东西,包括像LinearLayout这样的纯容器 但是,同样,用这两个术语来指代它们并没有特别的危害。小部件是驻留(显示给用户)在应用程序外部的视图,用于执行特定功能(启动主应用

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

调用它们都可以

我倾向于将术语“widget”用于默认情况下对用户具有可视表示的
视图
的子类,例如
文本视图
按钮
列表视图
,等等

我倾向于使用术语“视图”来表示可以是
view
的任何子类的东西,包括像
LinearLayout
这样的纯容器


但是,同样,用这两个术语来指代它们并没有特别的危害。

小部件是驻留(显示给用户)在应用程序外部的视图,用于执行特定功能(启动主应用程序本身或提供应用程序本身的功能)无需启动应用程序。
例如,时钟小部件在不启动闹钟或时间应用程序的情况下显示时间


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

视图是UI组件的基本构建块。将视图视为屏幕上的一个矩形,它可以绘制自身并处理事件

因此,不存在与视图关联的隐式“语义”。您基本上可以实现屏幕上显示的任何内容,并与用户进行交互

现在,小部件就是您通常认为的用户与应用程序交互的“控件”。按钮、微调器和复选框都是“小部件”的好例子。然而,这不是一个“硬”定义,Android上也没有Widget类。事实上,某个东西是一个“小部件”,这仅仅意味着该类出于组织目的位于android.widgets包中,但实际上它是一个视图

例如,按钮的基类是View,而不是像android.widgets.Widget这样的东西(它不存在)

(1)

另见:

正如视图类文档中优雅地陈述的那样:

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

因此,视图是IU元素的基类,小部件松散地定义为任何随时可用的视图。特别是:

查看: 视图是所有UI元素的基类。因此,它涵盖了许多不同的类和概念,包括小部件、视图组和布局。有一个根视图附着到构成视图层次结构基础的窗口实例。通常,“视图”一词通常用于描述UI元素,或指抽象或基本UI类,如视图组

小部件: 这个术语有多种定义,但大多数都是指一个“随时可用”的UI元素,如按钮、IVIEVIEW、EdEdTeX等。请注意,有些人认为小部件是完整的(不是抽象的)UI元素,而不是容器(例如VIEW组(LayOuts/ListVIEW))。值得注意的是,WIDGET是包名。(android.widget),其中文档提到以下内容:

小部件包包含(主要是可视的)用户界面元素,可在您的应用程序上使用 应用程序屏幕

因此,将非可视UI元素视为小部件也是合理的,以及在WIDGET包下定义的任何类。请参阅这里查看小部件包中的类的完整列表:

应用程序小部件: 不要与UI元素小部件混淆,应用程序小部件是一种远程视图层次结构,通常显示在用户的主屏幕上。如文档所定义:

应用程序小部件是可以嵌入到应用程序中的微型应用程序视图 其他应用程序(如主屏幕)和接收定期 更新。这些视图在用户界面中称为小部件, 你可以通过应用程序小部件提供商发布一个应用程序 能够容纳其他应用程序小部件的组件称为应用程序 小部件主机

视图组: 视图组是视图的一个子类,提供了创建父视图和定位子视图的能力,例如在布局的情况下

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

最后,我想建议,每当您提到视图、小部件或任何其他重要术语时,都要明确您的预期定义,以便人们能够更好地理解您所指的内容

进一步阅读:

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

小部件是一组预构建的视图,可用于构建用户界面,例如按钮、复选框、编辑文本。小部件是视图的子集。

这些实际上不是“小部件”,它们被称为“应用程序小部件”(我不知道为什么开发人员决定对两种不同的东西使用类似的措辞)。请参阅您的链接以获取参考。的可能副本