我与自己发生了一些争论,我想与你们其他人一起检查哪种实现在更好的实践方面是“最好的”。
就像一个基本的导航抽屉应用程序一样,我的有一个包含 NavDrawer 本身的主要 NavDrawerActivity,以及我稍后替换的框架布局。然后,我还有一个名为 ListsFragment 的 Fragment,它基本上包含来自简单 String ArrayList 的数据的 ListView。因此,这个 ListsFragment总是包含一个基本的字符串列表(意思是,我只需要一个 fragment.java 文件)。
现在,在谷歌的导航抽屉示例中,他们有类似的东西,他们有一个片段,他们只需用新内容替换(替换,字面意思是 FragmentManager.replace(etc))。这意味着每次我们从 NavDrawer 中选择一个项目时都会重新实例化一个新的 Fragment。这也是我现在正在做的事情。
但我一直在思考这样做是否“乱七八糟”。这样做不是更清洁的方法:
在 Fragment 中创建一个名为 的方法loadList(ArrayList<String> list)
,它基本上将 Fragment 中 ListView 的内容替换为消费列表。
毕竟,这不是比每次都实例化一个新的 Fragment 更“便宜”的操作成本吗?当我可以通过我将维护的单个 Fragment 变量“刷新”数据时?
所以,我的问题是:哪个更好?或者,如果“更好”过于主观:这就是“Java/Android 方式”。很高兴看到你的想法。谢谢!
TLDR:哪个更好:每次我从 NavDrawer 中选择一个新项目或简单地通过公共loadData
方法加载新数据时实例化一个新片段。
编辑:对于那些想要查看 Google 的 NavDrawer 示例的人,可以在此处下载示例http://developer.android.com/training/implementing-navigation/nav-drawer.html