结束一个片段

Posted

技术标签:

【中文标题】结束一个片段【英文标题】:Ending a Fragment 【发布时间】:2011-07-17 01:03:56 【问题描述】:

所以我已经知道如何打开fragment。这是我的困境。我的view 旁边有一个元素列表(元素周期表元素)。当您选择一个元素时,它会显示它的信息。

我的问题是我需要能够从(我们将称为详细信息片段)中删除 view 并将其从堆栈中删除,这样我就没有大量的内存备份。

当调用一个新的fragment 来替换它时,如何将它从堆栈中移除?

【问题讨论】:

“巨大的内存备份”真的是个问题吗?除非它给您带来实际问题,或者您有信息表明这将是一个问题,否则您正在为您的应用程序增加不必要的复杂性。 【参考方案1】:

您可以使用FragmentTransaction#remove() 方法删除片段。此方法还会从已附加到的容器中删除视图。

但是,从片段文档中:

已停止: 片段不可见。主机活动已停止或片段已从活动中删除但已添加到后台堆栈。已停止的片段仍然存在(系统保留所有状态和成员信息)。但是,它不再对用户可见,并且会在 Activity 被杀死时被杀死。

如果您已将该片段添加到后台堆栈,则在 Activity 被杀死之前它不会被杀死。

【讨论】:

反正没有杀死活动片段吗? :(【参考方案2】:

您可以尝试禁止添加到后台堆栈。当一个片段被移除或替换时,它不会被添加到后台堆栈中,并且需要再次重新填充(使用数据)。

【讨论】:

以上是关于结束一个片段的主要内容,如果未能解决你的问题,请参考以下文章

如何从设置中获取数据并发送到此片段

片段(Java) | 机试题+算法思路+考点+代码解析 2023

Camtasia如何剪辑视频,剪切视频的片段

前端片段整理

结束haml评论

在 HTML 中显示 HTML 片段