如何清除 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/