【发布时间】:2014-04-12 22:13:50
【问题描述】:
我必须实现一个类似于 Instagram Android 客户端中使用的导航系统。
- 屏幕底部应该有一个永久的标签栏。
- 当用户在其中一个选项卡中进行更深入的导航时,可以说是详细视图,然后切换到另一个选项卡,然后切换回上一个选项卡,最后显示的(更深的)详细视图应该会显示,然后打开后按,它应该迭代回到所述选项卡的主视图。
到目前为止,我想出了以下几点:
- 我有一个 MainAcitvity 在底部显示菜单。
- 选择菜单点时,会显示相应的片段。
- 当用户在 Fragment 中进一步导航时,它会要求 MainActivity 根据给定条件更改其内容,从而更改显示的 Fragment。
- 我通过调用 FragmentTransaction 的 addToBackStack() 方法将所有 Fragment 更改添加到 backStack。
我被困在这一点上,无法弄清楚如何在后按时切换片段,以及当显示更深的视图而不是选项卡的主视图时如何处理选项卡导航。
我正在考虑为每个选项卡使用我自己单独的“backstack 实现”。当用户在选项卡中更深入地导航时,我会生成一个唯一的“标签”并在调用 addToBackStack() 时使用该标签,并将该标签放入我实现的“backStack”中。如果用户再次导航到此选项卡,我可以检查该选项卡的“backStack”中是否有任何标签,如果有,则在 MainActivity 的 fragmentManager 中的真实 backStack 中查找该条目,然后切换到它。
我还想不出更好的办法。有没有更好/更简单的方法来实现上述行为?我错过了什么吗? (我知道这在 Android 世界中是非常糟糕的应用程序设计,但这是另一个问题)
【问题讨论】:
-
朋友,我也遇到了同样的情况,如果你最终知道如何进行这种导航,我非常感谢你发布它并告诉我,谢谢
-
@Hugo 我已经发布了我的经验作为答案。如果您觉得有帮助,请告诉我。