【问题标题】:FragmentTransaction replace vs add. Recreation issueFragmentTransaction 替换与添加。娱乐问题
【发布时间】:2014-12-09 09:55:51
【问题描述】:

在我正在开发的项目中,有一系列片段与replace 交换:A -> B -> C。

我不喜欢它的一件事是,当弹出后台堆栈时,片段会重新创建,我会丢失 UI 设置,而且我还需要在数据加载和生命周期中跳舞。另一方面,如果我使用add 方法,它不会破坏碎片,但它也会让我担心内存消耗——它会导致OutOfMemoryException 吗?框架是否处理 LRU 隐藏片段?

有什么方法可以结合addreplace 的好处?也许我应该尝试使用add + hide

【问题讨论】:

    标签: android android-fragments fragmentmanager


    【解决方案1】:

    是的,添加、隐藏和显示是您想要的。首次创建片段时使用 add,隐藏要替换的片段,并显示之前显示的片段。您不想使用替换,因为这会破坏旧片段的视图层次结构,并且您将丢失片段的状态。

    【讨论】:

    • 谢谢。那么内存消耗呢?您是否尝试过堆叠内存密集型片段并查看框架是否尝试收集隐藏的 LRU 片段?
    • Android 可能会在需要时恢复一些内存,但如果这样做,它会保持状态。我遇到内存问题的主要时间是图像——主要是尝试加载大型图像。
    猜你喜欢
    • 2015-07-10
    • 2011-08-12
    • 2010-12-16
    • 1970-01-01
    • 2021-08-09
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多