【发布时间】:2016-12-03 18:33:47
【问题描述】:
Android Wear 中的导航注意事项
在 Android Wear 中,从左向右滑动屏幕可让您返回上一个活动。我注意到,如果一个活动有片段并且你做了那个手势,你会返回到前一个活动,不管你在活动中有多少片段。
问题
我希望能够执行图表中描述的以下导航:
- 我的主要活动是A;
- 如果我在 B 中滑动,我会转到 A;
- 如果我在 C 中滑动,我 去B;
- 但是,如果我在 D 中滑动,我会返回到 A。
这就是我希望的导航方式,但我无法以令人满意的方式做到这一点。
尝试
- 其中一种方法是在进入 D 之前完成活动 C。但是,它有点令人困惑,因为在滑动之后,活动 B 会短暂出现在活动 D 之前(这是有道理的,因为完成 C 之间存在延迟并启动 D,使 B 出现在背景中)
- 另一个尝试是从 B 和 C 中清除活动堆栈(使用
Intent中的标志。但是,问题还在于,在刷 D 时,C 会在后台短暂出现,并且仅在我刷完后才消失,显示A. 这也可能使用户感到困惑,因为他会在到达 A 之前短暂地看到 C。 - 我也尝试过使用片段,但我意识到我在一个活动中放入多少个片段并不重要,滑动它会导致活动完成。这可以很好地从 D 转到 A,但问题是当我在 C 中时,我必须能够返回到 B。因此,用三个片段(B、C 和 D)膨胀单个活动由于那个细节,效果不会那么好。
- 我还考虑过使用带有片段的视图分页器并添加逻辑来做我想做的事,但是,在代码和实现方面,我认为它可能会很快变得丑陋,特别是如果我想在将来更改它。我必须以编程方式显示页面并禁用滑动以在 viewpager 内导航,以免让用户继续浏览(因为我希望用户只通过在每个屏幕上按“继续”按钮来导航)。另外,当到达 D 时,我必须删除 B 和 C,这样当用户滑动时,他会回到 A。正如我所说,代码会很快变得丑陋。
总结
考虑到所有这些,我想要的是能够通过滑动从 C 转到 B,当到达 D 时,滑动会将用户返回到 A,而不会在后台意外显示 B 或 C。我希望用户真正感觉到他正在从 D 转到 A,而不会觉得 B 或 C 在背景中短暂出现很奇怪
【问题讨论】:
标签: android android-fragments android-activity wear-os android-navigation