我正在尝试从堆栈中删除一个片段。我正在使用此代码:
FragmentManager fm = getSupportFragmentManager();
if (fm != null) {
FragmentTransaction ft = fm.beginTransaction();
Fragment currentFragment = fm.findFragmentById(R.id.my_id);
if (currentFragment != null) {
ft.remove(currentFragment);
ft.commit();
}
}
我是否需要使用上面的代码调用popBackStack()?
fm.popBackStack();
答案 0 :(得分:3)
remove()
只会删除该片段。
popBackStack()
将删除当前片段并将其替换为堆栈中的最后一个片段。为此,您需要在最后一个片段事务上执行addToBackstack()
。但这不是你想要做的,所以不要这样做。