我需要在我的背包中从片段移动到片段。如果我使用popbackstack,它会删除顶部堆栈碎片,而不是我要去的那个。如果我需要回到堆栈上方的一个片段,我不能,因为它被删除了。如何保留那些上部后台堆栈碎片,这样我就不会丢失碎片中的数据? getBackStackEntryAt()是否允许我跳过堆栈而不会丢弃上层后台堆栈项,或者我只需要在popBackStack(i-1,0)之后执行commit()?
非常感谢
答案 0 :(得分:0)
这正是后备堆应该如何工作的。线索位于名称的“堆栈”部分。它是一个LIFO(后进先出)结构,而不是随机访问结构。如果要随机跳转条目,请不要使用后台堆栈来执行此操作。在每个跳转的后台堆栈上创建一个新条目,或使用操作栏选项卡或类似。如果您描述不同片段之间的关系,我们可能会建议如何最好地实现它们之间的导航;否则,您应该关注the official guidelines。