zoukankan      html  css  js  c++  java
  • 清空Fragment回退栈中某个Fragment之上的所有Fragment

    根据debug信息查看Fragment回退栈的情况,具体debug代码如下:

    int num = getActivity().getSupportFragmentManager().getBackStackEntryCount();
    String numString = "++++++++++++++++++++++++++++++++++Fragment回退栈数量:"+num;
    TALogger.d("Fragment", numString);
    for (int i = 0; i < num; i++) {
        BackStackEntry backstatck = getActivity().getSupportFragmentManager().getBackStackEntryAt(i);
        TALogger.d("Fragment", backstatck.getName());
    }
    

    debug结果截图如下:

    最后一步是调用:

    getActivity().getSupportFragmentManager().popBackStackImmediate(CreateGroupNameFragment.class.getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
    

    即弹出Tag为CreateGroupNameFragment之上的所有(包括自身)的Fragment。

    popBackStackImmediate(name,flag);

    第二个参数:只能是 0 或者 1(POP_BACK_STACK_INCLUSIVE);

    第一个参数为null时,第二个参数为0时:

    会弹出回退栈中最上层的那一个fragment。

    因为经测试,回退栈中的fragment个数减少了一个。

    第二个参数为1时:

    会弹出所有回退栈中的fragment。

    因为经测试,回退栈中的fragment个数变为0了。

  • 相关阅读:
    Django-session+CBV+ORM应用
    Django-session实现登陆
    Django-ORM-操作
    事件委托
    数组去重的方法
    闭包
    Javascript中继承
    函数调用的方式
    原型链的理解
    jsonp
  • 原文地址:https://www.cnblogs.com/qixing/p/4015262.html
Copyright © 2011-2022 走看看