始终使用片段

时间:2015-09-27 15:33:18

标签: android android-fragments

在Big Nerd Ranch的Android编程中,它提倡AUF(总是使用片段)。具体来说,它有这样的说法:

  

" ...稍后添加片段可能是一个雷区。将活动更改为   托管UI片段的活动并不困难,但有   成群的恼人的陷阱。保持一些接口管理   活动和让其他人通过片段管理只能制造东西   更糟糕的是因为你必须跟踪这种毫无意义的区别。   从一开始就使用片段编写代码要容易得多   而不用担心以后重新加工的痛苦和烦恼,或者   必须记住你在每个控制器中使用哪种控制器   你的申请的一部分。"

这本书没有说明烦人的陷阱是什么。有什么问题?

2 个答案:

答案 0 :(得分:1)

最重要的是Context。因为Activity是由Context(而不是直接)驱动的。当你需要一个活动中的上下文时,你总是在那里拥有它。与片段的情况一样,在片段中,您可以调用getActivity方法来获取父活动,但是当将代码从Activity移植到片段时,您必须处理在任何地方提供它。

另一个问题可能是Activity的生命周期。其中活动生命周期很简单,函数就像onResume,onPause很乐意使用同样不能说片段。将针对活动生命周期设计的内容调整为片段生命周期可能是一场噩梦。

话虽如此,如果事情并不复杂,而你只需要处理一项任务,那么开始时就可以安排活动。

答案 1 :(得分:1)

因为你处于决策的最初阶段,我想把它留在这里: https://corner.squareup.com/2014/10/advocating-against-android-fragments.html

在底线上,这篇博客说片段的生命周期过于复杂,因此主张不使用片段,而支持模型 - 视图 - 演示者模式

个人简报:CommonsWare的冗长评论点击了这一点。我盲目地使用碎片,因为他们在那里,我从不质疑他们。但在阅读完上述文章后,我改变了主意。