【问题标题】:Need clarification on how the native Navigation Drawer works with Fragments需要澄清原生导航抽屉如何与片段一起使用
【发布时间】: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+ 或云端硬盘,了解其使用方式。
  • 好的,这很有帮助。我已经习惯将它包含在每个页面上,只是因为它很容易扩展基本活动,但听起来一旦用户深入了解几页,我就不需要它了。谢谢。
  • 很高兴能为您提供帮助。我会写一个正确的答案。

标签: android android-fragments


【解决方案1】:

对于 Android 中的导航,您始终需要记住一件事:

  • 如果您停留在导航层次结构的同一级别,对于 例如,在浏览页面时,您使用Fragments
  • 当您在导航层次结构中上下移动时,例如 转到详细视图,您将开始一个新的Activity 并显示 Fragment 里面有详细内容。

NavigationDrawer 用于在您的应用中进行顶级导航,以便在应用的不同部分之间快速导航。这有点像主菜单。考虑到这一点,您需要确定 NavigationDrawer 在您的应用中是否有意义。这完全是关于用户应该如何浏览内容。如果只有一条路径供用户遵循,例如,如果您从一个屏幕开始,从那时起,用户可以从一个详细视图到下一个详细视图的导航层次结构中越来越深入,而不是 NavigationDrawer没有多大意义。但是,如果有多个路径,用户可以在没有一个专用的开始屏幕的情况下将其引导到应用程序的不同、独立的部分,除了NavigationDrawer 之外,其他一切都依赖于它,这听起来很合理。

您可以查看 Gmail、云端硬盘或 Google+ 等 Google 应用,了解应该如何使用 NavigationDrawer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多