【问题标题】:What is the difference between include a layout or include a fragment in Android?在 Android 中包含布局或包含片段有什么区别?
【发布时间】:2014-05-06 20:52:05
【问题描述】:

我正在寻找适用于 Android 的 Eclipse IDE,并且我认为大多数时候我可以执行相同的操作,包括布局或包含片段,因为两者都可以通过 Java 类进行管理。在阅读了很多帖子之后,我不太了解片段......我想我可以在没有它们的情况下创建一个响应式布局,只在我的主布局中包含另一个布局。所以... 您认为在 Android 中包含布局或包含片段之间有什么区别吗? 如果一个选项比另一个更好,你能解释一下吗?

【问题讨论】:

  • 片段是 UI 的可重用部分,因此您不必重新创建复杂的布局/视图,也可以更轻松地动态处理复杂的布局/视图。如果您不打算重用您的任何 UI 或创建复杂的动态 UI,则实际上不需要实现 Fragments。想象一下,如果您创建了一个带有布局的 Activity,但随后想重用该布局中的菜单。您可以将布局中的菜单放置在片段中,以便只需将片段放入您的活动中即可再次使用它,而不必重做整个布局或创建重复项。

标签: android eclipse android-layout android-fragments


【解决方案1】:

来自Android docs

Fragment 表示 Activity 中的行为或用户界面的一部分。您可以在单个活动中组合多个片段以构建多窗格 UI 并在多个活动中重用一个片段。您可以将片段视为活动的模块化部分,它有自己的生命周期,接收自己的输入事件,并且可以在活动运行时添加或删除(有点像“子活动”,您可以在不同的活动中重复使用)。

其中重要的部分是Fragments 有自己的生命周期。这意味着您可以启动、暂停、恢复、停止等。Fragment。你不能用布局做任何事情。还要注意Fragments 包含自己的布局。

【讨论】:

  • 是的,你有理由片段有自己的生命周期。所以......大多数时候我可以包含另一个布局来构建响应式主布局。这是真的吗?
  • 如果您正在为多个设备开发,您可以使用标准布局或片段。响应式设计是通过确保您在正确的资源文件夹中有图像来完成的。
  • @BlackHatSamurai 您能否举一个小例子说明为什么 UI 的一部分(片段)需要自己的生命周期?我很难想象为什么以及何时我只有 UI 停止/重新启动/销毁/等的特定部分。我可以看到它的可重用性功能有更多用途,但我只在生命周期中看到一片漆黑。
  • 是的,请举例说明为什么我们需要使用片段,因为它的生命周期,而不是包括布局。
【解决方案2】:

我们可以将片段视为子活动。它作为一个正常的activity有自己的生命周期,但是父activity的生命周期会影响fragment的activity。

但布局只是一种设计,可以通过将其“包含”到活动中来重用。它没有自己的生命周期。

【讨论】:

    【解决方案3】:

    我通常使用包含,因为它也易于使用基础级别的开发人员。因为它的包含布局语法“简单”,它没有 java 部分。

    在fragmemt中,我们可以将一个fragment视为一个子activity。它作为一个正常的activity有自己的生命周期,但是父activity的生命周期会影响fragment的activity

    主要区别是没有生命周期。但大多数开发者使用fragment进行意图,实际上包括所有java函数支持,它排除了lyfecycle函数。

    如果您重用了包含意图的页面 然后你可以选择包含并且易于处理

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      • 2011-10-16
      • 2020-04-20
      相关资源
      最近更新 更多