使用碎片不是更贵吗?

时间:2013-07-20 05:01:58

标签: android android-layout android-fragments

虽然我理解为什么我们需要Fragments(独立可重复使用的模块,每个模块都可以处理自己的UI,可以更改平板电脑和手机等...)如果我忽略这些原因并尝试保持简单布局为3-4 Fragments,他们的生命周期听起来更多"昂贵"而不是具有3-4 ViewGroup项的布局。

每次Fragments需要创建他们的视图时,他们都有一个完整的生命周期(onAttach - > onCreate - > onCreateView ...)。这意味着,我猜,使用比具有一个布局的Activity更多的系统资源。

如果我有类似列表的东西(不是ListFragment只有10 LinearLayouts个项目),那么即使最糟糕的情况也不应该是10个ViewGroup项而不是10 {{1}的用户界面要快得多}}?

1 个答案:

答案 0 :(得分:1)

对,碎片会稍慢。

然而,更快的术语非常相对。并且根据具体应用,可以不同地考虑相同的绝对时间差异。请注意premature optimization

我准备了简单的测量:两个RelativeLayouts,其中4 TextView每个都添加为简单的布局,相同的布局添加为2个片段(全部通过xml完成​​)。我已经使用ViewTreeObserver测量了完全绘制相对布局的时间。对于测试案例,差异是<大部分时间都在我的设备上10毫秒。我建议对你的情况进行相同的测量,然后才决定是否值得删除Fragments,因为它们在灵活性,易于支持,重用,代码复杂性等方面具有很多优势。