以我目前正在处理的应用为例: - 它有一个包含多个项目的navigationDrawer;现在有两件我感兴趣的项目,我称之为X和Y.
单击X和Y时,显示包含x元素或y元素列表的片段
选择和x或y列表元素会显示一个新片段,其中我显示有关选择项目的信息; x和y元素的视图片段不同
我可以选择编辑带来编辑片段的特定元素
片段方法正在运行,但我花了一些时间来管理片段之间的导航。此外,我可能不得不在抽屉中添加一些类似于X和Y的新项目。我的主要活动,我有抽屉和我进行片段切换,已经非常密集,这让我想到了:应该我从片段切换到活动?我正在考虑在选择抽屉项目时启动新活动,并处理与该活动中所选项目相关的列表/视图/编辑片段,而不是处理单个活动中所有项目的所有片段。
这是个好主意吗?这是不好的设计?
答案 0 :(得分:8)
我在类似的船上,我使用了Activities方法,这样我就可以在NavigationView上为每个特定导航点击一组片段。显然我使用的是NavigationView,但只用一个MainActivity管理所有这些片段真的是一件痛苦的事。
当我们点击导航项时,我更喜欢EveryActivity管理自己的片段。这给了我更好的性能,因为我不需要担心太多片段的生命周期,而且它是backStack并添加/删除/显示/隐藏地狱。
我使用以下SO问题巧妙地使用BaseActivity实现NavigationDrawer,并与所有其他活动共享。真正的魔力是它不会重复代码,或者它不仅仅是简单的旧继承技术。
Here's the link, do check it out
我在我的两个项目中使用了这个方法,它运行得非常好,而且从一开始我就不必处理片段管理。
答案 1 :(得分:5)
我有以下几点要提交:
片段方法要好得多。您应该为用户使用片段来获得更好的UI体验。
想象一下,想象你的屏幕是一篮子信息,如果你有另一个篮子(我,另一个屏幕),很多数据必须转移到然后,根据我的说法,最好将两个篮子的碎片和容器活动一起使用。当然,可以有两个以上的篮子/屏幕。
没有严格的规则,你应该只使用片段或活动,但谷歌说,尽可能使用片段要好得多。
一般情况下,开发人员使用片段将组合关联的逻辑放在一起,这样做会好得多,因为它会提供逻辑分组正在努力做到。
通过容器活动并在接口的帮助下,在片段中传递 java数据对象也很容易。这也被认为是一种非常模块化的方法。
休息取决于您希望如何定义应用程序的流程。我认为在你的场景中使用片段是一种更好的方法。只要您认为关联逻辑发生了巨大变化,就可以使用容器活动。
答案 2 :(得分:1)
首先,管理片段之间的导航并不困难。您可以查看google's tutorial。如果您发布代码,我可以建议您进行一些编辑
我认为这是糟糕的设计有两个原因