带活动的导航抽屉和。带片段的导航抽屉

NavigationDrawer with Activities vs. NavigationDrawer with Fragments

以我目前正在开发的应用为例: - 它有一个包含多个项目的导航抽屉;现在有两个项目让我感兴趣,我将它们称为 X 和 Y。

片段方法有效,但我花了一些时间来管理片段之间的导航。此外,我可能不得不在抽屉中添加一些类似于 X 和 Y 的新项目。我的主 activity,其中我有抽屉并且我进行片段切换,已经非常密集,这让我我的问题:我应该从片段切换到活动吗?我正在考虑在 selected 抽屉项目时开始一个新的 activity 并处理与 activity 中 selected 项目相关的 list/view/edit 片段,而不是在单个 activity.

中处理所有项目的所有片段

这是个好主意吗?是设计不好吗?

首先,管理片段之间的导航并不困难。您可以查看 google's tutorial。如果您post您的代码

,我可以建议您进行一些修改

我认为这是一个糟糕的设计,原因有二

  • 大量代码返工
  • 如果您想将导航模式更改为选项卡,这并不容易。

我有以下几点要提交:

  1. 片段方法要好得多。您应该使用片段来为用户提供 更好的 UI 体验

  2. 这样想,将您的屏幕想象成一篮子信息,如果您有另一个篮子(即另一个屏幕),其中 大量数据 将不得不来回转移,那么,根据我的说法,两个篮子的碎片和一个容器一起使用会更好 activity。当然也可以有两个以上baskets/screens。

  3. 没有硬性规定只能使用片段或活动,但是 google 说 在需要的地方使用片段要好得多可以.

  4. 一般来说,开发人员使用片段将关联的逻辑组合在一起,这样做会更好,因为它会提供一个逻辑分组 无论你想做什么。

  5. 通过容器activity并借助接口。这也被认为是一种非常模块化的方法。

Rest 取决于您希望如何定义应用程序的流程。我认为在您的场景中使用片段是一种更好的方法。在您认为相关逻辑发生巨大变化的任何地方使用容器活动。

我在类似的船上,我使用了 Activities 方法,这样我每个 Activity 都有一组片段用于特定导航点击 NavigationView。显然我使用 NavigationView,但是仅用一个 MainActivity 管理所有这些片段确实是一项痛苦的任务。

我更喜欢 EachActivity 在我们单击导航项时管理自己的片段。这给了我更好的性能,因为我不需要担心太多片段的生命周期而且它是 backStack 和 add/remove/show/hide 地狱。

我使用以下 SO 问题巧妙地使用 BaseActivity 实现 NavigationDrawer,并将其与所有其他 Activity 共享。真正的神奇之处在于它不会重复代码,或者它不仅仅是普通的旧继承技术。

Here's the link, do check it out

我在我的两个项目中使用了这种方法,它 运行 非常好,而且我不必从一开始就处理片段管理。