Android修改字体导致fragment事物hide,show出现重叠

1.现象
进入app,home键,然后修改手机字体大小,再进入app,点击切换tab,切换fragment出现各种重叠。
2.原因
查了点资料,以及自身掌握的知识,原来是应用启动了,修改字体,再回到activity,此时原activity会进入算是意外销毁,执行

   @Override
    protected void onSaveInstanceState(Bundle outState) {
        outState.putInt("position", position);
        super.onSaveInstanceState(outState);
    }

当再进入时,会在oncreate进行恢复,导致点击切换时,fragment对象是为空,但是界面是恢复的,所以提交事务的时候,全部hide()依然重叠
3.处理
(1)事务提交的时候,带上tag

  case BaseConstant.RB_ONE:
                if (homeFragment == null) {
                    homeFragment = new HomeFragment();
                    fragmentTransaction.add(R.id.fl_main_homepage, homeFragment, "one");
                } else {
                    fragmentTransaction.show(homeFragment);
                }
                break;
            case BaseConstant.RB_TWO:
                if (twoFragment == null) {
                    twoFragment = new TwoFragment();
                    fragmentTransaction.add(R.id.fl_main_homepage, twoFragment, "two");
                } else {
                    fragmentTransaction.show(twoFragment);
                }
                break;
            case BaseConstant.RB_THREE:
                if (threeFragment == null) {
                    threeFragment = new ThreeFragment();
                    fragmentTransaction.add(R.id.fl_main_homepage, threeFragment, "three");
                } else {
                    fragmentTransaction.show(threeFragment);
                }
                break;

(2)在oncreate处理

if (savedInstanceState != null) {
            FragmentManager manager = getSupportFragmentManager();
            homeFragment = (HomeFragment) manager.findFragmentByTag("one");
            twoFragment = (TwoFragment) manager.findFragmentByTag("two");
            threeFragment = (ThreeFragment) manager.findFragmentByTag("three");
            meFragment = (MeFragment) manager.findFragmentByTag("four");
            position = savedInstanceState.getInt("position");

        }

恢复的时候根据tag寻找fragment对象,这样当切换时,fragment对象不为空,提交前全部hide就生效不重叠
4.总结
学会处理activity的数据保存和恢复,希望对大家有帮助。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、内存相关 二、内存管理 三、基本数据类型 VS 对象类型 四、一些截图
    _浅墨_阅读 2,682评论 0 1
  • 1 到现在这个年纪,远远见到你还是会想要一路小跑着接近你。看到喜欢的食物,想要买两份,一份给你。每一次见你之前都超...
    沐森读书阅读 3,744评论 0 1
  • 圣说我们的成长就是不断完善自己,不断的吸收别人的优,不断的让自己变的优秀。可是在这过程中我们又都得到了什么?我想...
    颜小三阅读 2,675评论 0 2
  • 原文链接:http://www.jianshu.com/p/8e164a82d65b 精品中的精品: 2016年s...
    neobuger阅读 5,462评论 0 9

友情链接更多精彩内容