带活动的导航抽屉和。带片段的导航抽屉
NavigationDrawer with Activities vs. NavigationDrawer with Fragments
以我目前正在开发的应用为例:
- 它有一个包含多个项目的导航抽屉;现在有两个项目让我感兴趣,我将它们称为 X 和 Y。
X 和 Y 都在单击时显示包含 x 元素或 y 元素列表的片段
selecting 和 x 或 y 列表元素显示一个新片段,我在其中显示有关 select 项目的信息; x 和 y 元素的视图片段不同
在视图片段中,我可以选择编辑特定元素,这会弹出一个编辑片段
片段方法有效,但我花了一些时间来管理片段之间的导航。此外,我可能不得不在抽屉中添加一些类似于 X 和 Y 的新项目。我的主 activity,其中我有抽屉并且我进行片段切换,已经非常密集,这让我我的问题:我应该从片段切换到活动吗?我正在考虑在 selected 抽屉项目时开始一个新的 activity 并处理与 activity 中 selected 项目相关的 list/view/edit 片段,而不是在单个 activity.
中处理所有项目的所有片段
这是个好主意吗?是设计不好吗?
首先,管理片段之间的导航并不困难。您可以查看 google's tutorial。如果您post您的代码
,我可以建议您进行一些修改
我认为这是一个糟糕的设计,原因有二
- 大量代码返工
- 如果您想将导航模式更改为选项卡,这并不容易。
我有以下几点要提交:
片段方法要好得多。您应该使用片段来为用户提供 更好的 UI 体验 。
这样想,将您的屏幕想象成一篮子信息,如果您有另一个篮子(即另一个屏幕),其中 大量数据 将不得不来回转移,那么,根据我的说法,两个篮子的碎片和一个容器一起使用会更好 activity。当然也可以有两个以上baskets/screens。
没有硬性规定只能使用片段或活动,但是 google 说 在需要的地方使用片段要好得多可以.
一般来说,开发人员使用片段将关联的逻辑组合在一起,这样做会更好,因为它会提供一个逻辑分组 无论你想做什么。
通过容器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
我在我的两个项目中使用了这种方法,它 运行 非常好,而且我不必从一开始就处理片段管理。
以我目前正在开发的应用为例: - 它有一个包含多个项目的导航抽屉;现在有两个项目让我感兴趣,我将它们称为 X 和 Y。
X 和 Y 都在单击时显示包含 x 元素或 y 元素列表的片段
selecting 和 x 或 y 列表元素显示一个新片段,我在其中显示有关 select 项目的信息; x 和 y 元素的视图片段不同
在视图片段中,我可以选择编辑特定元素,这会弹出一个编辑片段
片段方法有效,但我花了一些时间来管理片段之间的导航。此外,我可能不得不在抽屉中添加一些类似于 X 和 Y 的新项目。我的主 activity,其中我有抽屉并且我进行片段切换,已经非常密集,这让我我的问题:我应该从片段切换到活动吗?我正在考虑在 selected 抽屉项目时开始一个新的 activity 并处理与 activity 中 selected 项目相关的 list/view/edit 片段,而不是在单个 activity.
中处理所有项目的所有片段这是个好主意吗?是设计不好吗?
首先,管理片段之间的导航并不困难。您可以查看 google's tutorial。如果您post您的代码
,我可以建议您进行一些修改我认为这是一个糟糕的设计,原因有二
- 大量代码返工
- 如果您想将导航模式更改为选项卡,这并不容易。
我有以下几点要提交:
片段方法要好得多。您应该使用片段来为用户提供 更好的 UI 体验 。
这样想,将您的屏幕想象成一篮子信息,如果您有另一个篮子(即另一个屏幕),其中 大量数据 将不得不来回转移,那么,根据我的说法,两个篮子的碎片和一个容器一起使用会更好 activity。当然也可以有两个以上baskets/screens。
没有硬性规定只能使用片段或活动,但是 google 说 在需要的地方使用片段要好得多可以.
一般来说,开发人员使用片段将关联的逻辑组合在一起,这样做会更好,因为它会提供一个逻辑分组 无论你想做什么。
通过容器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
我在我的两个项目中使用了这种方法,它 运行 非常好,而且我不必从一开始就处理片段管理。