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

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

2个回答

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问