虽然我理解为什么我们需要Fragments
(独立可重复使用的模块,每个模块都可以处理自己的UI,可以更改平板电脑和手机等...)如果我忽略这些原因并尝试保持简单布局为3-4 Fragments
,他们的生命周期听起来更多"昂贵"而不是具有3-4 ViewGroup
项的布局。
每次Fragments
需要创建他们的视图时,他们都有一个完整的生命周期(onAttach - > onCreate - > onCreateView ...)。这意味着,我猜,使用比具有一个布局的Activity更多的系统资源。
如果我有类似列表的东西(不是ListFragment只有10 LinearLayouts
个项目),那么即使最糟糕的情况也不应该是10个ViewGroup
项而不是10 {{1}的用户界面要快得多}}?
答案 0 :(得分:1)
对,碎片会稍慢。
然而,更快的术语非常相对。并且根据具体应用,可以不同地考虑相同的绝对时间差异。请注意premature optimization。
我准备了简单的测量:两个RelativeLayouts
,其中4 TextView
每个都添加为简单的布局,相同的布局添加为2个片段(全部通过xml完成)。我已经使用ViewTreeObserver测量了完全绘制相对布局的时间。对于测试案例,差异是<大部分时间都在我的设备上10毫秒。我建议对你的情况进行相同的测量,然后才决定是否值得删除Fragments,因为它们在灵活性,易于支持,重用,代码复杂性等方面具有很多优势。