Android:ft.remove()和popBackStack()之间的区别

时间:2015-04-11 00:27:05

标签: java android android-fragments fragmentmanager

我正在尝试从堆栈中删除一个片段。我正在使用此代码:

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();

1 个答案:

答案 0 :(得分:3)

remove()只会删除该片段。

popBackStack()将删除当前片段并将其替换为堆栈中的最后一个片段。为此,您需要在最后一个片段事务上执行addToBackstack()。但这不是你想要做的,所以不要这样做。