Fragment回退栈和Activity栈不太一样

Fragment回退栈,加入到Fragment回退栈里面的fragment出栈后,处于栈顶的fragment也不会执行onResume生命周期。(即已经加入到Fragment回退栈里面的Fragment不会再执行Fragment的任何一个生命周期方法)这点和activity栈不一样。
如果想要Fragment回退栈里面的生命周期方法执行,只能通过曲线救国的方式:在fragment的容器Activity中添加回退监听,通过tag拿到回退栈中想要的fragment实例,然后通过该实例强制调用fragment的生命周期方法。

        getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
            @Override
            public void onBackStackChanged() {
                FragmentManager fm = getSupportFragmentManager();
                if (fm != null) {
                    HouseContrastListFragment fragment = (HouseContrastListFragment) fm.findFragmentByTag(HouseContrastListFragment.TAG);
                    if (fragment != null) {
                        fragment.onResume();
                    }

                    HouseDetailFragment houseDetailFragment
                            = (HouseDetailFragment) fm.findFragmentByTag(HouseDetailFragment.TAG);
                    if (houseDetailFragment != null) {
                        houseDetailFragment.onResume();
                    }
                }
            }
        });
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,338评论 25 709
  • Fragment概述 Fragment是Activity中用户界面的一个行为或者说是一部分。主要是支持大屏幕上动态...
    wangling90阅读 13,966评论 5 75
  • Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决...
    闲庭阅读 8,033评论 0 10
  • 《Android Fragment完全解析,关于碎片你所需知道的一切》 我们都知道,Android上的界面展示都是...
    cxm11阅读 6,602评论 2 19
  • 何为懒加载?第一次看见这个词我是 从字面意义上完全不能理解加载为何还有个“懒”字。其实懒加载是用以优化网页加载图片...
    Iswine阅读 2,144评论 0 0