Fragment重叠

主界面Activity中多个Fragment使用show hide的方式切换。、
当手机内存不足、屏幕旋时Activity被回收、重建。fragment也会被系统保存和恢复。但是我们在Activity中保存的fragment的引用已经变为null,若此时创建新的Fragment则会出现重叠的问题。
解决办法:
创建Fragment的的时候带上一个tag
Activity onCreate的时候先使用findViewByTag检查是否已存在想要的Fragment,如果没有再创建。

    protected void onCreate(Bundle savedInstanceState) {
        //解决fragment重叠
        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        mainFragment = (MainFragment)getFragmentManager().findFragmentByTag(FRAGMENT_TAG+0);
        messageRecordFragment = (MessageRecordFragment)getFragmentManager().findFragmentByTag(FRAGMENT_TAG+1);
        contactFragment = (ContactFragment)getFragmentManager().findFragmentByTag(FRAGMENT_TAG+2);
        mySpaceFragment = (MySpaceFragment)getFragmentManager().findFragmentByTag(FRAGMENT_TAG+3);
        transaction.commitAllowingStateLoss();
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容