删除所有(子)片段的正确方法

2024-05-11

我在父级片段线性布局(fragmentContainer)中动态加载一堆子级片段,然后当用户单击按钮时,我需要将它们全部删除并添加新的。我不知道每次会添加多少碎片。这是我一次性删除所有碎片的方法

LinearLayout ll = (LinearLayout) view.findViewById(R.id.fragmentContainer);
ll.removeAllViews();

现在我可以使用片段事务方法添加新的。 这种删除所有片段的方法非常简单,对我来说比使用remove()逐个删除每个片段更好,但这是一个好的做法吗?性能怎么样?您推荐更好的方法吗?


这是我一次性删除所有碎片的方法

不,不是。这是从该容器中删除所有视图的方法。

这种删除所有碎片的方法非常简单并且对我有用。

它确实会删除任何碎片。它会删除视图。这就是该方法被命名的原因removeAllViews().

但这是一个好的做法吗?

不会。对于初学者来说,当您旋转设备或进行配置更改时,您会注意到所有“删除的”片段都会回来。

您推荐更好的方法吗?

跟踪未完成的片段(例如,使用ArrayList<Fragment>),然后迭代该列表,将每个列表传递给remove()上的方法FragmentTransaction.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除所有(子)片段的正确方法 的相关文章

随机推荐