有什么办法,如何在存储片段中不调用 onCreateView() 的情况下清除支持 FragmentManager 的 backStack?
我了解片段生命周期并在弹出时调用 onDestroyView() 和 onCreateView()。 http://developer.android.com/guide/components/fragments.html#Creating
我也知道如何从后台弹出所有片段
mFragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
或者
for(int i = 0; i < mFragmentManager.getBackStackEntryCount(); ++i) {
mFragmentManager.popBackStack();
}
但两种方法都调用 onCreateView() 和其他生命周期方法,直到 onDestroyView() 和 onDestroy()。
但是有什么办法,如何通过仅从 onDestroyView() 而不是从 onCreateView() (片段内部)调用来清除这个后台堆栈?
或者有什么办法可以用清除以前的片段来替换事务?
例如,我想在进行交易之前明确回溯:
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
fragmentManager.beginTransaction().replace(R.id.content, fragment).commit();