View
是所有小部件的超类,但我如何区分 View 和小部件?例如,一个按钮或文本框,我应该称它们为 View 还是小部件?View
是所有小部件的超类,但我如何区分 View 和小部件?例如,一个按钮或文本框,我应该称它们为 View 还是小部件?两个术语都可以使用。
我倾向于将"widget"这个术语用于View
子类,它们默认情况下对用户有可视化表示——例如 TextView
、Button
、ListView
等。
而将"view"这个术语用于任何View
的子类,包括像LinearLayout
这样的纯容器。
但是,再次强调,用任何一个术语都不会有特别的危害。
视图是UI组件的基本构建块。将视图视为屏幕上的矩形,可以绘制自身并处理事件。(1)
因此,视图没有隐含的“语义”关联。您可以实现任何出现在屏幕上并与用户交互的东西。
现在,小部件通常被认为是用户与应用程序交互的“控件”。按钮、旋转器和复选框都是“小部件”的很好的例子。然而,这不是一个“硬性”定义,在Android上没有像小部件类这样的东西。事实上,某些东西是“小部件”仅意味着该类位于android.widgets包中以进行组织,但它实际上是一个视图。
例如,按钮的基类是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
小部件: 这个术语有很多不同的定义,但大多数都指“即插即用”的UI元素,比如Button、ImageView、EditText等。请注意,有些人认为小部件是完整的UI元素(而不是抽象的),并且不是容器(例如ViewGroups(布局/ListViews))。值得注意的是,Widget是一个包名称(android.widget),文档中提到:
小部件包含(主要是视觉上的)UI元素,可在您的应用程序屏幕上使用。
因此,合理地考虑非视觉UI元素也是小部件,以及任何在widget包下定义的类。请参阅此处获取widget包中所有类的完整列表:http://developer.android.com/reference/android/widget/package-summary.html
应用程序小部件: 不要与UI元素小部件混淆,应用程序小部件是远程视图层次结构,最常显示在用户的主屏幕上。根据文档的定义:
小部件是可以嵌入其他应用程序(如主屏幕)并接收定期更新的小型应用程序视图。这些视图在用户界面中被称为小部件,您可以使用小部件提供程序发布一个小部件。能够容纳其他小部件的应用程序组件称为小部件宿主。进一步阅读: 视图和小部件之间的区别是什么 视图和小部件之间的区别
将视图视为类似于一个巨大的容器,其中包含占据屏幕上矩形区域并处理绘制和事件处理的任何内容。
而小部件是一组预构建的视图,可用于构建用户界面,例如按钮、复选框、编辑文本等。小部件是视图的子集。
小部件是视图,它们驻留在应用程序之外(向用户显示),以执行特定功能(启动主应用程序本身或提供应用程序本身的功能),而无需启动应用程序。
例如,时钟小部件可以在不启动闹钟或时间应用程序的情况下显示时间。
更精确的定义可在此处找到:
小部件的定义