【问题标题】:Android: Widget, AppWidget, Fragment, Activity and App - What's the difference?Android:Widget、AppWidget、Fragment、Activity 和 App - 有什么区别?
【发布时间】:2016-09-23 01:53:28
【问题描述】:

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

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

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

【问题讨论】:

  • @Whoever-down-voted-my-question。只是好奇为什么。我在这个网站上获得了相当新的声誉,我想更好地理解。在这一点上似乎没有另一个质量问题。我一直在寻找在线文档,小部件和 AppWidget 之间的混淆使得无法解析。你能评论为什么投反对票吗?
  • 我为你投了赞成票,只是因为我没有发现你的问题有任何问题。我们通过提问和从他人那里获取知识来前进。并非每个人天生就拥有压倒性的知识。不幸的是,我在论坛中看到的是,有一些人讨厌阅读和理解潜在问题并帮助社区。他们采取了简单的路线,即投票并删除您的问题或更改您的整个问题等。对于正在为奇怪的情况寻求解决方案的我们来说,这只是不幸的......
  • @Vincy 好吧,感谢您的帮助。我一直在研究赞成/反对投票,我知道元社区对此进行了激烈的辩论。就我而言,如果对某个问题有一些具体的批评,我很乐意解决它。如果问题需要大幅改进,我会这样做。但由于未确定投票者的身份,因此无法找到、解决和重新评估问题。长回复。谢谢,

标签: android android-fragments android-widget android-appwidget


【解决方案1】:

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

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


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

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

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

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

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

【讨论】:

  • 我数错了吗?我们有“四个应用组件”,AppWidget是“不是4个应用组件之一”,我算了三个其他类型(Activity、Fragment、View)。我错过了一个吗?
  • @BSD 这四个应用程序组件可以出现在清单中的<application> 标记内。它们是 Activity (<activity>)、Service (<service>)、BroadcastReceiver (<receiver>) 和 ContentProvider (<provider>)。 Fragment 和 View 不是应用程序组件,它们用于组成 Activity 的 UI 和逻辑。
  • 优秀。谢谢
猜你喜欢
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2018-04-29
  • 2013-04-17
相关资源
最近更新 更多