zcz475421852 2018-05-03 07:38 采纳率: 25%
浏览 2856
已结题

Android Activity.recreate() 更改字体大小引起Fragment的混乱

有时候fragment会直接卡死不动 有时候会就只显示两个fragment...

  • 写回答

2条回答 默认 最新

  • bt侠 2018-05-03 08:21
    关注

    Acivity重新创建会触发activity的异常销毁,从而走activity的异常销毁的生命周期,即在destroy之前会调用onSaveInstanceState方法去保存视图数据,之后页面创建时会调用onRestoreInstanceState方法获取之前存储的数据并进行还原.楼主可以考虑将需要保存的数据通过此方法进行数据还原,和fragment的重新绑定.
    分析楼主的原因可能是,fragment内有依赖父activity的方法,而activity销毁重建的过程中会导致找不到父元素,而显示重复或数目错误可能是由于销毁过程的fragment解绑和重复添加,可以在绑定fragment的过程中添加tag进行识别,在activity重新创建的过程中去重新加载fragment,通过tag去判断fragment是否已经添加

    评论

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试