【发布时间】:2014-05-12 07:57:22
【问题描述】:
我习惯于在 Android 中使用 3rd 方库来实现抽屉式导航(滑动菜单),但我想从现在开始使用本机版本。我完成了教程 (http://developer.android.com/training/implementing-navigation/nav-drawer.html),这非常简单。
我通常通过在基类中定义配置来将第 3 方导航抽屉扩展到每个活动。然而,新的导航抽屉可以交换碎片,我的研究表明这是管理显示器的标准方式。
这看起来不错,但我的应用程序的页面和导航层次结构相当复杂。像大多数应用程序一样,它包含的片段不仅仅是菜单中的片段。
因此,如果我有 3 个用于片段 A、B 和 C 的导航抽屉项目,并且我只能从片段 C 加载片段 D,我是否在配置导航抽屉的活动中处理该导航逻辑?拥有一个容器来交换无限数量的片段似乎是一场噩梦,尤其是在工作流程很深的情况下。
据我在 Stack 上收集到的信息,似乎有很多人熟悉在每个 Activity 中扩展 3rd 方抽屉,但是当他们切换到本机版本时,就会出现混乱。
总而言之,我了解导航的片段交换方面。我只是不明白工作流程导航的其余部分是如何工作的,比如我是否在导航项片段下方有几个详细信息屏幕。如果有人能给我一些关于如何最好地处理这种情况的提示,也许我可以为未来的读者试验并发布一些代码。
【问题讨论】:
-
如果您停留在导航层次结构的同一级别 - 例如在浏览页面时 - 您使用
Fragments。当您在导航层次结构中上下移动时(例如转到详细视图),您将启动另一个Activity并显示其中包含详细内容的Fragment。 -
这是有道理的,但是当我开始一个新的活动(如细节视图)时,导航抽屉会发生什么?在这些页面上不显示抽屉是最佳做法吗?或者我是否需要新活动的导航抽屉的另一个实现?
-
好吧,如果你实现
NavigationDrawer只是取决于你是否需要它。如果在详细视图中添加NavigationDrawer是有意义的,那么没有理由不添加它,但对于大多数应用程序来说,在层次结构中更靠后的位置添加NavigationDrawer是相当罕见的。只要确保它真的很有意义。NavigationDrawers主要用于顶级导航,以在应用程序的不同部分之间快速导航。换句话说,它是一种主菜单。您可以查看大多数 Google 应用,例如 Gmail、Google+ 或云端硬盘,了解其使用方式。 -
好的,这很有帮助。我已经习惯将它包含在每个页面上,只是因为它很容易扩展基本活动,但听起来一旦用户深入了解几页,我就不需要它了。谢谢。
-
很高兴能为您提供帮助。我会写一个正确的答案。