分段还是不分段?

时间:2012-12-13 17:33:07

标签: android android-activity fragment

由于我已经开始越来越多地采用Fragments,但随着Fragments功能的增加(片段中的片段,MapFragments),我开始达到一个我需要定义何时应该创建一个新的View / Action的点作为片段还是作为活动?

活动定义为:

  

活动是用户可以做的一件重点事。

但是片段有点像文档中描述的那样采用了这个定义:

  

例如,新闻应用程序可以使用一个片段来显示列表   左边的文章和另一个片段上显示的文章   右 - 两个片段出现在一个活动中

用户可以在一个包含两个片段的活动中执行以下两项操作。

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

3 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:6)

  

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

这更像是一个过时的文档问题而不是其他任何问题。 Activity具有相同的定义......当我们使用较小的屏幕尺寸(例如,手机)时。当你向更大的屏幕移动时,活动比“单一的,有针对性的事情”更复杂的几率会增加。

  

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

这是我的一般启发式:

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

  • p>
  • 如果您预计某某用户界面将始终独立存在,只需创建一个简单的活动。

  • 如果您预计您的预测能力不是那么好,那么就会犯更多碎片。例如,您可能会说,“好吧,帮助将永远不需要与其他任何东西并存”并使其成为一项活动。然后,如果您意识到其他UI 可能会从与他们并排的帮助中受益,而不是单独关闭 - 因此用户可以阅读文档并执行操作同时 - 你会后悔没有帮助成为一个片段,因为你将不得不做一些重新工作。

  • 如果这样的UI片段永远不会独立存在 - 换句话说,如果它更像是一个小部件而不是一个完整的活动 - 而且你预计在多个项目中使用它,那就去做吧 单个小部件,采用自定义ViewViewGroup的形式。

但是,正如jsmith所指出的那样,没有普遍的正确或错误的答案。 BTW,AFAIAC,jsmith的答案在这里是正确的,但我对他的答案的评论太过冗长......: - )

答案 2 :(得分:1)

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

很多时候片段让我感到口中有酸味......例如,我需要一种带按钮的分页仪表板。为此我每个按钮使用一个ViewPager + 1片段。我遇到了各种各样的问题,因为在Android 4.2片段无法嵌套之前。

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

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

因此,在我看来,只要你有一个独立的区域,在视图上不经常移动,就可以在几个屏幕上重复使用,你也支持平板电脑(或者我将来),用它。

如果您需要嵌套片段,经常重新排列的视图或不会重复使用的代码,则不会。