我有一个疑问,希望澄清有关持有多个片段的活动的一些观点。从Android中的一个活动中加载多个片段
我有10个片段附加一个活动(HomeActivity.java);本次活动包含一个导航抽屉,多个图标,如搜索工具栏,添加,删除,返回键等
这我下面的结构如下,
用户点击的导航抽屉里的任何项目,我加载片段,
fragmentManager.beginTransaction().replace(R.id.fragment_container, fragmentToLoad, tagFragment).addToBackStack(tagFragment).commit();
fragmentToLoad - >片段的名称,tagFragment - >标记该特定片段。
我正在改变标题名称,工具栏根据HomeActivity本身的片段。
我的导航抽屉项目只有一个片段,并在fragment_container中被替换,但有一件事也存在,即这些片段也具有内部子片段。
在开始时,我说有10个片段,这10个片段是导航抽屉项目。有许多内在的煎炉。
现在,我使用接口(监听器)在HomeActivity.java本身中进行内部片段的点击监听器和其他活动。
所以有时我会发出警告“主线程上有很多工作要做”。
我知道有很多活动正在进行HomeActivity.java。
请告诉我这个架构是错误的或有任何解决方案。
你可以使用像这样的片段......但通常不推荐使用这种片段,因为最终会出现一个真正臃肿的“超级活动”。首先,片段更能帮助开发平板电脑 - 避免重写或复制巨大的代码片段以进行平板电脑布局。 考虑根据用例将你的碎片分离成活动。 – Zadrox
您应该考虑从片段移动到自定义视图。我不知道您收到的警告是否与您的应用程序架构相关,但过度使用碎片确实无济于事。 https://corner.squareup.com/2014/10/advocating-against-android-fragments.html – pawelo
另外,如果您有一些时间,请仔细阅读Google IO 2014 iosched源代码 - https:// github。 COM /谷歌/ iosched。这是如何组织Android应用的一个很好的例子。 – Zadrox