android - 使用 fragment 和 Activity 向上导航

标签 android android-fragments

我正在尝试使用向上导航模式,但在同时使用 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 状态。

Intended up behaviour

编辑: 我现在用于向上导航的模式是,在我的 list 中,我将 A 定义为 B 的父级,在 Activity B 中,我有一个工具栏,我使用 setDisplayHomeAsUpEnabled 将其设置为 supportActionBar。

最佳答案

我在我的 list 中将我的 Activity 定义为“singleTop”。如果您删除向上按钮会导致重新创建任务,这正是我想要的。

关于android - 使用 fragment 和 Activity 向上导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30336906/

相关文章:

android - getFragmentManager() 返回 null

android - fragment 内 fragment {Kotlin}

android - android中的兼容性行为是什么?

Android WebView 下载不工作

android - 使用 Android 将表数据从 Sql Server 获取到 SQLite

安卓应用结构

android - 如何使用 fragment 自定义标题栏和选项卡

android - 防止/捕获 "IllegalArgumentException: parameter must be a descendant of this view"错误

android - SQLite 中 "not equal"的语法是什么?

android - 如何从 fragment 中调用 fragment ?