美文网首页
Fragment 回退栈

Fragment 回退栈

作者: 夜沐下的星雨 | 来源:发表于2020-07-28 21:09 被阅读0次

    一、什么是回退栈
    Activity切换时是通过栈的形式,不断压栈出栈,在Fragment的时候,如果你不是手动开启回退栈,它是直接销毁再重建,但如果将Fragment任务添加到回退栈,情况就会不一样了,它就有了类似Activity的栈管理方式。

    二、回退栈的使用
    fragment跳转的封装

    public void startToFragment(Context context, int container, Fragment newFragment) {
    
        FragmentManager manager = getFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.replace(container, newFragment);
        transaction.addToBackStack(context.getClass().getName());
        transaction.commit();
    }
    

    1.fragment1 --> fragment2
    Fragment2 fragment2 = new Fragment2 ();
    startToFragment(getActivity(), R.id.layout_container, fragment2 );
    2.fragment2 --> fragment1
    getActivity().getFragmentManager().popBackStack();
    3.fragment2 --> fragment3
    Fragment3 fragment3 = new Fragment3 ();
    startToFragment(getActivity(), R.id.layout_container, fragment3 );
    4.fragment3 --> fragment1

    //回退栈中某个Fragment之上的所有Fragment
    FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.popBackStackImmediate(
    MainActivity.class.getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE);

    作者:张迅之乎者也
    链接:https://www.jianshu.com/p/b8aca9976608
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:Fragment 回退栈

          本文链接:https://www.haomeiwen.com/subject/aavqrktx.html