fragment重影问题
来源:互联网 发布:sql语句关键字 编辑:程序博客网 时间:2024/04/29 09:24
最近使用fragment是发现一个之前没有遇到的问题,fragment有时会出现重影,使用hide()、show()、replace无效。网上给出了很多建议,有的说使用使用hide()和show()代替replace()方法,最终在知乎上找到答案。
当系统内存不足时,一些后台Activity会被销毁掉,在Fragment的宿主activity被销毁后,Fragment的状态被保存。当Activity恢复到前台重建时,之前实例过的Fragment又出现在Acticity中,而FragmentTransaction相当于又重新add fragment。所以此时FragmentTransaction的hide()、show()方法对其无效。
我们可以打开手机:设置-开发人员选项-不保留活动 选择打开,这样当Activity置于后台后会被销毁,重现内存不足时重影现象。
解决方法:
1. 为每个fragment的rootview添加背景。
2. 在add fragment时为fragment加一个Tag,oncreate()有一个参数bundle savedInstanceState,在onCreate()中判断savedInstanceState是否为空,不为空就调用findFragmentTagById()或findFragmentByTag()为fragment赋值.
3. 重写onSaveInstanceState(); 注释掉super.onSaveInstanceState(outState);在activity被销毁后,不保存fragment状态。
@Override
protected void onSaveInstanceState(Bundle outState) {
// super.onSaveInstanceState(outState);
}
- Fragment 重叠(重影)问题
- android fragment重影问题
- fragment重影问题
- 解决Fragment重影问题
- fragment重影问题
- Fragment 重叠(重影)问题
- fragment重影问题
- Fragment出现的重影问题
- Tab+Fragment异常生命周期下产生的fragment重影问题
- fragment 重影问题,原来是布局id相同导致的
- fragment重影解决
- fragment重影解决办法
- Android Fragment重影解决方法
- fragment+RadioGroup实现底部导航栏 多个 fragment 重影问题
- Android Fragment重影的解决方法
- Android Fragment重影的解决方法
- IE6的重影问题
- 数码管重影问题
- ceph rbd 对象组成
- 虚拟机使用简介
- React构建单页应用方法与实例
- mycat操作笔记
- 进程间通信-命名管道
- fragment重影问题
- JSON生成c#类代码小工具
- 三大WEB服务器对比分析
- 2D 血条 跟随 玩家
- APEX 菜单项格式不统一
- Debugging Linux kernel code on Android platforms
- 特征值分解、奇异值分解(SVD)、主成分分析(PCA)
- 使用Xcode GPU Frame Caputre教程
- 使用AndroidStudio分析和解决ImageLoader引起OOM问题