Fragment回退栈管理

现在在android app的开发中,Fragment使用也越来越多,怎么管理Fragment也是一个普遍存在的问题,一般情况下我们加入Fragment的时候,如果是添加进了回退栈,那么按返回键就会退出上一层,加入的时候代码如下:
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.add(id, targetFragment, tag);
        transaction.addToBackStack(tag);
        transaction.commitAllowingStateLoss();

那么有可能存在一种情况,退出的Fragment是比较深,然后退出的时候需要把前面的都退出掉,比如A->B->C->D->E,这个时候如果退出E想把前面的都退出掉,该怎么实现?

    for (int i = manager.getBackStackEntryCount() -1;i>=0;i--){
            manager.popBackStack(manager.getBackStackEntryAt(i).getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
            Fragment fragment = manager.findFragmentByTag(manager.getBackStackEntryAt(i).getName());
            if (null != fragment) {
                FragmentTransaction transaction = manager.beginTransaction();
                transaction.remove(fragment);
                transaction.commitAllowingStateLoss();
            }
        }

你可能感兴趣的