我正在尝试使用向上导航模式,但在同时使用 fragment 和 Activity 时遇到问题。假设我有 Activity A,并且该 Activity 包含 fragment a。现在,我单击 fragment a 中的某些内容, fragment 事务发生, fragment b 替换了 a,并将 a 放入后堆栈。 “向上”箭头现在出现在我的工具栏中。这一切都很好。现在我单击 fragment b 中的某些内容并启动 Activity B。A 是 B 的父级。现在,B 有一个向上箭头,我希望当我触摸它时我会到达顶部,即完成 Activity B 并且 A 的后堆栈将被弹出,所以我们最终得到包含 fragment a 和空后堆栈的 Activity A。
我的问题是,当在 B 中按下向上键时,B 已完成但 A 仍在显示 fragment b。有什么方法可以让 A 不恢复其 fragment 返回状态 onActivityResult 或类似的东西,因此 fragment b 永远不会显示在 B 的向上操作中?
我尝试过的是在启动 B 时使用 startActivityForResult 并在 onActivityResult 上弹出 A 的 fragment 后台堆栈,但在弹出堆栈之前会短暂显示 b。如果在 B 中按下向上键,我只希望 A 不恢复它的 fragment 状态。
编辑: 我现在用于向上导航的模式是,在我的 list 中,我将 A 定义为 B 的父级,在 Activity B 中,我有一个工具栏,我使用 setDisplayHomeAsUpEnabled 将其设置为 supportActionBar。
最佳答案
我在我的 list 中将我的 Activity 定义为“singleTop”。如果您删除向上按钮会导致重新创建任务,这正是我想要的。
关于android - 使用 fragment 和 Activity 向上导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30336906/