Android 带有活动的NavigationDrawer与带有片段的NavigationDrawer
以我目前正在使用的应用程序为例: -它有一个带有多个项目的navigationDrawer;现在有两个项目我感兴趣,我称之为X和YAndroid 带有活动的NavigationDrawer与带有片段的NavigationDrawer,android,android-fragments,navigation-drawer,android-navigation,Android,Android Fragments,Navigation Drawer,Android Navigation,以我目前正在使用的应用程序为例: -它有一个带有多个项目的navigationDrawer;现在有两个项目我感兴趣,我称之为X和Y 单击X和Y时,都会显示包含X元素或Y元素列表的片段 选择和x或y列表元素显示一个新的片段,在其中我显示关于所选项目的信息;x和y元素的视图片段不同 在视图片段中,我可以选择编辑出现编辑片段的特定元素 片段方法正在工作,但我花了一些时间来管理片段之间的导航。此外,我可能需要在抽屉中添加一些与X和Y类似的新项目。我的主要活动(我有抽屉并进行片段切换)已经非常密集,这
- 单击X和Y时,都会显示包含X元素或Y元素列表的片段
- 选择和x或y列表元素显示一个新的片段,在其中我显示关于所选项目的信息;x和y元素的视图片段不同
- 在视图片段中,我可以选择编辑出现编辑片段的特定元素
这是个好主意吗?这是一个糟糕的设计吗 首先,管理片段之间的导航并不困难。你可以查一下。如果您发布代码,我可以建议您进行一些编辑 我认为这是一个糟糕的设计,有两个原因
- 大量代码返工
- 如果你想改变你的导航模式,比如说标签,这是不容易做到的李>
- 我有以下几点要提交:
- 片段方法要好得多。您应该使用片段来为用户提供更好的UI体验
- 这样想,把你的屏幕想象成一个信息篮子,如果你有另一个篮子(即另一个屏幕),很多数据都必须用它来来回传输,那么,根据我的说法,最好在容器活动中使用两个篮子的片段。当然,可以有两个以上的篮子/屏幕
- 没有硬性规定你应该只使用片段或活动,但谷歌表示,如果可能的话,最好使用片段
- 通常,开发人员使用片段将相关逻辑分组在一起,这样做更好,因为它将为您尝试执行的任何操作提供逻辑分组
- 通过容器活动和接口的帮助,在片段之间传递java数据对象也很容易。这也是一种非常模块化的方法
Rest取决于您希望如何定义应用程序的流。我认为在您的场景中使用片段是一种更好的方法。只要您认为关联的逻辑发生了巨大的变化,就可以使用容器活动 我在一艘类似的船上,我使用活动方法,这样我就可以在导航视图上单击每个活动以及一组特定导航的片段。显然,我使用NavigationView,但仅用一个MainActivity管理所有这些片段确实是一项痛苦的任务 我更喜欢每个活动在单击导航项目时管理自己的片段。这给了我更好的性能,因为我不需要担心太多片段的生命周期,它是backbackback和add/remove/show/hide地狱 我使用下面的SO问题巧妙地使用BaseActivity实现NavigationDrawer,并与所有其他活动共享它。真正的神奇之处在于它不会复制代码,或者它不仅仅是简单的旧继承技术
我在我的两个项目中使用了这种方法,它运行得非常好,而且我从一开始就不必处理片段管理。为什么要尝试发明自行车?有一种描述的方法和大量的示例。现在,您有了NavigationView,它为您提供了开箱即用的材质设计。您的主要活动应该管理导航和状态。每个片段都应该提供逻辑分离。如果你的活动中有超过100行的代码,这可能意味着你做错了什么。谢谢你的回答。我刚刚开始研究NavigationView,我可能也会处理主要的活动。再次感谢。我真的很感谢你的帮助。我将保留片段方法,并修改到目前为止我编写的代码,以便更好地在片段之间进行通信。谢谢!谢谢你的回答。我最后也做了同样的事情,因为我很难在一个单独的活动中管理目的完全不同的片段。我以您提到的BaseActivity结束,并为每组片段(列出片段、编辑片段、查看)扩展了前面的专门活动。(片段)我很高兴您提出解决方案,您可以接受这一点作为您的答案;)