10

随着我开始越来越多地采用 Fragments,而且随着 Fragments 功能的增加(Fragments 中的 Fragments,MapFragments),我开始达到需要定义何时应该将新的 View/Action 作为 Fragment 的地步或作为一个活动?

一个活动被定义为:

活动是用户可以做的一个单一的、有重点的事情。

但是 Fragments 有点像文档中描述的那样采用了该定义:

例如,一个新闻应用程序可以使用一个片段在左侧显示文章列表,而另一个片段在右侧显示一篇文章——两个片段都出现在一个活动中

这是用户可以在一个 Activity 中使用两个 Fragment 做的两件事。

所以我想要一些输入/帮助来确定决定我应该将新动作/视图作为片段还是作为活动的最佳方法是什么?

4

3 回答 3

14

答案取决于您和您的开发实践(或您公司的开发实践)。然而,我的观点是:至少,如果你认为正在开发的功能可以在多个活动中使用,或者如果它可以在一个活动中与另一个视图一起使用(如在平板电脑上),那么你应该做到这一点一个片段。

我们最近采用了在所有情况下都创建片段的理念。我们的活动现在只是顶级协调员,基本上是把事情联系在一起的粘合剂。这使得架构一致且灵活。这对我们很重要,因为我们在几个地方有许多工程师在处理代码。

于 2012-12-13T18:20:50.287 回答
6

一个活动被定义为:“一个活动是用户可以做的一个单一的、专注的事情”

这更像是一个过时的文档问题,而不是其他任何事情。Activity具有相同的定义...当我们使用较小的屏幕尺寸(例如电话)时。当您移动到更大的屏幕时,一项活动比“一个单一的、专注的事物”更复杂的可能性会增加。

所以我想要一些输入/帮助来确定决定我应该将新动作/视图作为片段还是作为活动的最佳方法是什么?

这是我的一般启发式:

  • 如果您预计某某 UI 可能独立存在于手机大小的屏幕上,但与平板电脑大小的屏幕上的其他内容一起使用,请将其设为片段。

  • 如果您预计某某 UI 将始终独立存在,只需创建一个简单的活动。

  • 如果您预计自己的预测能力不是那么好,那就错在制造更多碎片方面。例如,您可能会说,“嗯,帮助永远不需要与其他任何东西并列”,并使其成为一项活动。然后,如果您意识到UI 的其他部分可能会受益于与它们并排的帮助而不是单独关闭 - 这样用户可以同时阅读文档并执行操作 - 您将后悔没有把帮助变成一个片段,因为你将不得不做一些返工。

  • 如果某某 UI 永远不会独立存在——换句话说,如果它更像是一个单独的小部件而不是一个完整的活动——并且你预计在多个项目中使用它,那么让它成为一个单独的小部件,在习惯View或的形式ViewGroup

但是,正如 jsmith 所指出的,没有普遍的正确或错误答案。顺便说一句,AFAIAC,jsmith 的答案在这里是正确的,但我对他的答案的评论太罗嗦了...... :-)

于 2012-12-19T14:16:20.107 回答
1

我从 1.5 开始就在 Android 上进行开发,所以我一直在开发很长一段时间的活动和最近的片段。

经常有碎片让我嘴里有酸味……一个例子是当我需要一种带有按钮的分页仪表板时。为此,我使用 ViewPager + 每个按钮 1 个片段。我遇到了各种各样的问题,因为在 Android 4.2 之前无法嵌套片段。

另一个问题是片段的异步功能模式,当需要将片段从一个地方快速移动到另一个地方时,它会出现各种不当行为。

不要认为一切都很糟糕......在更简单的情况下,片段的使用效果很好。

所以,在我看来,只要你有一个独立的区域,在视图上不经常移动,可以在多个屏幕中重复使用,并且你支持平板电脑(或我的未来),使用它。

如果您需要嵌套片段、频繁重新排列的视图或不会重用的代码,请不要这样做。

于 2012-12-19T13:32:32.480 回答