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();
            }
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这本小说已经读了一个月,还没完结,故事已经进展到21世纪了,塔莉和凯蒂已经快要四十岁的不惑之年,凯蒂最近十年都是围...
    Lik的姐姐阅读 138评论 0 0
  • 从前,我的生活几乎是以学习为中心,从小学时,就想着要考个好大学。奈何我生性散漫,没什么自律性,总是不能狠下心来努力...
    蓝猫南阅读 259评论 0 0
  • 在经历了天翻地覆的2016年里,我所记得最美丽的日子,就是高考前的日子。傍晚的时候,趴在窗台上,对着越来越晚的落日...
    冀柒阅读 393评论 0 0
  • 我们都想简单 但活着活着就复杂了 我们都想快乐 但过着过着就难过了 有时 不是你非要多想 是现实 让你难过!!!
    乐影美冉阅读 139评论 0 0
  • 拿不定设计?让经典的尼尔森十大可用性原则帮你!(附案例) 以简书为案例讲述「尼尔森十大可用性原则」 尼尔森的十大可...
    方伟在学习阅读 575评论 0 1