【发布时间】:2015-05-30 22:21:17
【问题描述】:
我在父片段线性布局(fragmentContainer)中动态加载了一堆子片段,然后当用户单击按钮时,我需要将它们全部删除并添加新片段。我不知道每次将添加的片段的确切数量。这是我一次删除所有碎片的方法
LinearLayout ll = (LinearLayout) view.findViewById(R.id.fragmentContainer);
ll.removeAllViews();
现在我可以使用片段事务方法添加新的了。 这种删除所有片段的方法非常简单,并且对我来说比使用 remove() 一个一个地删除每个片段更好,但这是一个好习惯吗?性能怎么样?你推荐更好的方法吗?
【问题讨论】:
-
我相信您也应该使用片段事务删除片段。
-
@EpicPandaForce 我知道,但我必须通过一个循环,同时将它们一一删除,对吗?但是我的方式只用两行代码就可以立即清除所有内容。那么为什么要打扰呢?我的方法有什么缺点吗?
-
你说你这样做然后添加新片段,为什么不使用 FragmentTransaction.replace 用新片段删除现有片段?
-
@harism 因为我不知道每次将添加的片段的确切数量。例如,首先可以添加 3 个片段,然后当用户单击按钮时,这次可能会添加 2 个片段。那么用什么代替什么?
-
也许我误解了您的用例,但是根据文档替换,应该删除同一容器中的所有片段,然后使用作为参数给出的片段调用 add。这适用于首先添加的片段,对于后面的片段,您应该使用 FragmentTransaction.add。
标签: android android-fragments android-nested-fragment