在Android中,包含布局和包含片段有什么区别?

13

我正在寻找适用于Android的Eclipse IDE,我发现在处理布局或片段的时候,大多数情况下我可以使用相同的操作,因为两者都可以通过Java类来管理。但是,我在阅读了许多文章之后仍然不太理解片段...我认为我可以在没有它们的情况下创建响应式布局,只需将另一个布局包含在我的主布局中即可。 那么...您认为在Android中包含布局和片段之间有什么区别吗? 您能否解释一下其中一种选项比另一种更好的原因呢?


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

7

来自Android文档

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

重要的是,片段有它们自己的生命周期。 这意味着您可以启动、暂停、恢复、停止等片段。 对于布局,您无法做到这一点。 还应该注意到,片段包含它们自己的布局。


是的,你说得对,一个片段有自己的生命周期。所以...大多数时候我可以包含另一个布局来构建响应式的主布局。这是正确的吗? - user2528167
如果您正在为多个设备开发应用程序,可以使用标准布局或片段。响应式设计的实现是通过确保在正确的资源文件夹中拥有图像来完成的。 - BlackHatSamurai
3
@BlackHatSamurai 您能给出一个小例子,说明为什么UI的一部分(Fragment)需要有自己的生命周期吗?我很难想象为什么和何时会只有某个特定的UI部分停止/重新启动/销毁等。我可以看到它的可重用性功能,但是在生命周期方面我完全不了解。 - Ren
好的,请举个例子说明为什么我们需要使用Fragment,因为它的生命周期,而不是包含一个布局。 - marciowb

0

通常我使用include,因为它易于使用,适合初级开发人员。由于它包含的布局语法“简单”,它不包含Java部分。

在fragment中,我们可以将其视为子活动。它有自己的生命周期,就像普通活动一样,但父活动的生命周期会影响片段活动。

主要的区别是没有生命周期。但大多数开发者用片段进行缩进,实际上,include具有所有Java函数支持,但排除了生命周期函数。

如果您需要重用包含意图的页面,则可以选择include并轻松处理。


0

我们可以将片段视为子活动。它具有与普通活动相同的生命周期,但父活动的生命周期会影响片段活动。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接