Android:Widget、AppWidget、Fragment、Activity 和 App - 有什么区别?

BSD*_*BSD 1 android android-widget android-fragments android-appwidget

我在 Java 和 C# 方面有很多经验,但我是 Android 新手。我主要使用 C#,因为我很喜欢 Control 层次结构。我喜欢本体的即插即用。我正在尝试理解这个新范式中的本体,但我可能得到了一些虚假信息。

对于应用程序,这应该是最大的组成部分。在应用程序内,可能有多个活动。一个活动可以显示多个 Fragment。AppWidgets 似乎是一种特殊情况,因为它们作为 App 的一个组件存在,但会单独显示。有人告诉我,你可以扩展 Buttons 或 ProgressBar 来创建你自己的组件,这些组件又被称为 Widgets。

正如我所说,我可能完全错了。理想情况下,我想创建自己的小部件,我可以将其放在 Fragment、AppWidget 或 Activity 上;我可以将其中的任何一个组合成一个应用程序。我发现的所有在线资源都只在 AppWidget 的意义上讨论 Widget?我提供的信息不正确吗?任何人都可以澄清本体论吗?谢谢

Kar*_*uri 5

“小部件”是一个有点过载的术语。如果您搜索有关“自定义视图”的教程,您的运气可能会更好。我将在底部简要介绍各种术语及其含义。

自定义视图几乎是扩展View类(或其任何子类)的任何东西,而不是框架的一部分。自定义视图可用于任何需要典型视图的地方,例如在布局文件中或直接用 Java 构建。需要注意的一点是:只有某些视图可以在 AppWidget 中使用,因为它们在您的应用程序之外的另一个进程中运行。这意味着您的自定义视图不能在 AppWidget 中使用。根据我的经验,这往往不太重要。


应用程序:一个应用程序。包含在<application>标签内的清单中定义的组件。

活动:四个应用程序组件之一。几乎总是有一个关联的 UI,由Views的层次结构组成。

Fragment:一个框架类,有助于模块化应用程序的代码和 UI。Fragment 可以附加到 Activity 并且可以为 Activity 的View层次结构贡献一些 UI 。它们完全是可选的;您不必在您的应用程序中使用 Fragment,并且您可以附加一个 Fragment,而无需为 Activity 提供任何 UI。

视图:一个 UI 组件,例如文本 ( TextView) 或图像 ( ImageView)。这些也称为“小部件”,您可能会注意到框架类位于android.widget包中。一些视图包含其他视图,以便您可以构建 UI 层次结构;这些将扩展ViewGroup并或多或少可互换地称为“视图组”或“布局”。

AppWidget:用户可以添加到他或她的主屏幕的东西。这是由应用程序提供的,但不是前面提到的 4 个应用程序组件之一(它由应用程序组件管理,即 的特殊子类BroadcastReceiver)。大多数人通俗地将这些称为“小部件”,因为它的说法较短,并且启动器也使用该术语,从而使用户适应它。