所以我已经开始了解如何打开fragment
。这是我的困境。我有一个列表({1}}旁边的元素(元素周期表元素)。当您选择一个元素时,它会显示它的信息。
我的问题是我需要能够从(我们称之为详细信息片段)中删除view
并将其从堆栈中删除,这样我就没有大量的内存备份。< / p>
当调用新的view
来替换它时,如何将其从堆栈中删除?
答案 0 :(得分:3)
您可以使用#remove()
FragmentTransaction
方法删除片段。此方法还会从已附加的容器中删除视图。
但是,从片段文档:
停止: 片段不可见。主机活动已停止或片段已从活动中删除但已添加到后台堆栈。已停止的片段仍处于活动状态(系统会保留所有状态和成员信息)。但是,它不再对用户可见,并且如果活动被杀死将被杀死。
如果您已将该片段添加到后台堆栈,则在活动被杀之前不会被杀死。
答案 1 :(得分:0)
您可以尝试禁止添加到Backstack。当一个片段被删除或替换时,它不会被添加到backstack中,并且需要再次重新填充(使用数据)。