带有活动的NavigationDrawer与带有碎片的NavigationDrawer

时间:2015-09-07 09:33:28

标签: android android-fragments navigation-drawer android-navigation

以我目前正在处理的应用为例:   - 它有一个包含多个项目的navigationDrawer;现在有两件我感兴趣的项目,我称之为X和Y.

  • 单击X和Y时,显示包含x元素或y元素列表的片段

  • 选择和x或y列表元素会显示一个新片段,其中我显示有关选择项目的信息; x和y元素的视图片段不同

  • 视图片段中的
  • 我可以选择编辑带来编辑片段的特定元素

片段方法正在运行,但我花了一些时间来管理片段之间的导航。此外,我可能不得不在抽屉中添加一些类似于X和Y的新项目。我的主要活动,我有抽屉和我进行片段切换,已经非常密集,这让我想到了:应该我从片段切换到活动?我正在考虑在选择抽屉项目时启动新活动,并处理与该活动中所选项目相关的列表/视图/编辑片段,而不是处理单个活动中所有项目的所有片段。

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

3 个答案:

答案 0 :(得分:8)

我在类似的船上,我使用了Activities方法,这样我就可以在NavigationView上为每个特定导航点击一组片段。显然我使用的是NavigationView,但只用一个MainActivity管理所有这些片段真的是一件痛苦的事。

当我们点击导航项时,我更喜欢EveryActivity管理自己的片段。这给了我更好的性能,因为我不需要担心太多片段的生命周期,而且它是backStack并添加/删除/显示/隐藏地狱。

我使用以下SO问题巧妙地使用BaseActivity实现NavigationDrawer,并与所有其他活动共享。真正的魔力是它不会重复代码,或者它不仅仅是简单的旧继承技术。

Here's the link, do check it out

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

答案 1 :(得分:5)

我有以下几点要提交:

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

  2. 想象一下,想象你的屏幕是一篮子信息,如果你有另一个篮子(我,另一个屏幕),很多数据必须转移到然后,根据我的说法,最好将两个篮子的碎片和容器活动一起使用。当然,可以有两个以上的篮子/屏幕。

  3. 没有严格的规则,你应该只使用片段或活动,但谷歌说,尽可能使用片段要好得多。

  4. 一般情况下,开发人员使用片段将组合关联的逻辑放在一起,这样做会好得多,因为它会提供逻辑分组正在努力做到。

  5. 通过容器活动并在接口的帮助下,在片段中传递 java数据对象也很容易。这也被认为是一种非常模块化的方法。

  6. 休息取决于您希望如何定义应用程序的流程。我认为在你的场景中使用片段是一种更好的方法。只要您认为关联逻辑发生了巨大变化,就可以使用容器活动。

答案 2 :(得分:1)

首先,管理片段之间的导航并不困难。您可以查看google's tutorial。如果您发布代码,我可以建议您进行一些编辑

我认为这是糟糕的设计有两个原因

  • 很多代码返工
  • 如果您想更改导航模式以说明标签,则无法轻松完成。