如何删除使用片段管理器添加的所有片段?

Posted

技术标签:

【中文标题】如何删除使用片段管理器添加的所有片段?【英文标题】:How can i remove all fragments that are added with the fragmentmanager? 【发布时间】:2015-10-07 11:36:59 【问题描述】:

我添加了多个这样的片段:

 currentWebViewFragment = tabs.get(currentTabIndex);
 FragmentTransaction ft = fm.beginTransaction();
 ft.add(R.id.webViewFrame,tabs.get(currentTabIndex));
 ft.commit();

但是“如果一个活动被暂停或停止,系统可以通过要求它完成或简单地终止它的进程来从内存中删除该活动。

如果活动被销毁并保存它的状态,片段管理器也会这样做。

当 Activity 被销毁并决定保存其状态时,如何删除从 FragmentManager 添加的所有 Fragment?

【问题讨论】:

【参考方案1】:

您可以将所有片段添加到ArrayList,然后您就可以使用remove(fragment),例如:

FragmentTransaction ft = fm.beginTransaction();

for (Fragment fragment : fragmentList)

    ft.remove(fragment);



ft.commit();

如果您想避免保存状态,您可以在 onSaveInstanceState 方法或 onStop 中执行此操作。

【讨论】:

以上是关于如何删除使用片段管理器添加的所有片段?的主要内容,如果未能解决你的问题,请参考以下文章

当sqlite android片段中的数据更改或删除时如何刷新recyclerview?

如何使用警报管理器将数据从片段传递到广播接收器

在android中使用带有片段的roboguice的任何简单示例?

如何使用Android片段管理器传递变量[重复]

PHP Wordpress - 删除更新唠叨和版本给所有人,但管理员(2个片段)

从容器中删除所有碎片