结束一个片段
Posted
技术标签:
【中文标题】结束一个片段【英文标题】:Ending a Fragment 【发布时间】:2011-07-17 01:03:56 【问题描述】:所以我已经知道如何打开fragment
。这是我的困境。我的view
旁边有一个元素列表(元素周期表元素)。当您选择一个元素时,它会显示它的信息。
我的问题是我需要能够从(我们将称为详细信息片段)中删除 view
并将其从堆栈中删除,这样我就没有大量的内存备份。
当调用一个新的fragment
来替换它时,如何将它从堆栈中移除?
【问题讨论】:
“巨大的内存备份”真的是个问题吗?除非它给您带来实际问题,或者您有信息表明这将是一个问题,否则您正在为您的应用程序增加不必要的复杂性。 【参考方案1】:您可以使用FragmentTransaction
的#remove()
方法删除片段。此方法还会从已附加到的容器中删除视图。
但是,从片段文档中:
已停止: 片段不可见。主机活动已停止或片段已从活动中删除但已添加到后台堆栈。已停止的片段仍然存在(系统保留所有状态和成员信息)。但是,它不再对用户可见,并且会在 Activity 被杀死时被杀死。
如果您已将该片段添加到后台堆栈,则在 Activity 被杀死之前它不会被杀死。
【讨论】:
反正没有杀死活动片段吗? :(【参考方案2】:您可以尝试禁止添加到后台堆栈。当一个片段被移除或替换时,它不会被添加到后台堆栈中,并且需要再次重新填充(使用数据)。
【讨论】:
以上是关于结束一个片段的主要内容,如果未能解决你的问题,请参考以下文章