android - 在 FragmentManager 中管理 BackStackEntries

标签 android android-fragments android-3.0-honeycomb

如何清除 FragmentManager 中的 BackStackEntries?这是我用来更改 fragment 对象的代码:

FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
Fragment homeFragment = new Home();
fragmentTransaction.replace(R.id.mainFragement, homeFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

在特定情况下,我需要删除完整的后台堆栈条目。我没有在 fragment 管理器中找到任何特定的方法。你有什么想法吗?

最佳答案

我一直在研究一种方法,我认为它可以满足您的要求,但我唯一能从文档中弄清楚的是这种方法是否只是清空 BackStack 或者是否有任何对 View 容器的影响。基本上,它找到位于堆栈顶部的条目并删除所有内容,包括该条目。如果其他人认为有负面影响,请告诉我,因为我会很好奇:

public static void clearBackStack(FragmentManager manager){
    int rootFragment = manager.getBackStackEntryAt(0).getId();
    manager.popBackStack(rootFragment, FragmentManager.POP_BACK_STACK_INCLUSIVE);
}

关于android - 在 FragmentManager 中管理 BackStackEntries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5308387/

相关文章:

java - 从主要 Activity 更改 fragment 中的 setText 值

android - FragmentPagerAdapter 怪癖和崩溃

java - 将 ListFragment 和 Fragment 与仅接受 fragment 的 TabsPagerAdapter 结合起来

android_asset 不适用于 Honeycomb?

android - 10.0.2.2 :8080 in web browser in emulator is not working

android - 带有@Parcelize 注解的RealmList

android - 为什么 genymotion 运行这么慢?

android 添加 MultiSelectListPreference

Android Fragment 行为异常

android - 应用程序在 3.0 中崩溃,但在 2.3.3 中运行良好