zcz475421852
zcz475421852
采纳率25%
2018-05-03 07:38 阅读 2.5k

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

10

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • qq_31334171 雯雯的断剑 2018-05-03 09:26

    可以试试在recreat()方法里先remove掉fragment,再进行字体大小的更改

    点赞 1 评论 复制链接分享
  • qq_28339011 bt侠 2018-05-03 08:21

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

    点赞 评论 复制链接分享

相关推荐