我需要在我的后台堆栈中从一个片段移动到另一个片段。如果我使用 popbackstack,它会删除我要去的那个上面的顶部堆栈片段。如果我需要回到堆栈上更高的片段,我不能,因为它被删除了。我怎样才能保留那些上层的 backstack 片段,这样我就不会丢失片段中的数据?getBackStackEntryAt() 是否允许我在堆栈中跳转而不会破坏上部的 backstack 项目,或者我是否只需要在 popBackStack(i-1,0) 之后执行 commit()?
非常感谢
我需要在我的后台堆栈中从一个片段移动到另一个片段。如果我使用 popbackstack,它会删除我要去的那个上面的顶部堆栈片段。如果我需要回到堆栈上更高的片段,我不能,因为它被删除了。我怎样才能保留那些上层的 backstack 片段,这样我就不会丢失片段中的数据?getBackStackEntryAt() 是否允许我在堆栈中跳转而不会破坏上部的 backstack 项目,或者我是否只需要在 popBackStack(i-1,0) 之后执行 commit()?
非常感谢
这正是后栈应该如何工作的。线索在名称的“堆栈”部分。它是 LIFO(后进先出)结构,而不是随机访问结构。如果您想在条目之间随机跳转,请不要使用后退堆栈来执行此操作。为每次跳转在后堆栈上创建一个新条目,或使用操作栏选项卡或类似内容。如果您描述了不同片段之间的关系,我们可能会建议如何最好地实现它们之间的导航;否则,您应该遵循官方指南。