您好,欢迎来到 ios企业签名! 【快速注册】 【登录

您可以 “CTRL+D”一键收藏本站网址 ,下次访问更快速!

ios企业签名

Android 关于Fragment重叠问题分析和解决

更新时间:2020/2/9 / 阅读次数:72

一、问题描述

相信大家在使用Fragment的过程中,肯定碰到过Fragment重叠的问题,重启应用就好了。然而原因是什么呢?

二、原因分析

首先,Android管理Fragment有两种方式,使用add、hide、show的方式和replace方式,两种方式各有优缺点。

replace方式

如果使用这种方式,是可以避免重叠的问题,但是每次replace会把生命周期全部执行一遍,如果在这些生命周期函数 里拉取数据的话,就会不断重复的加载刷新数据,所以我们并不推荐使用这种方式。

add、hide、show的方式

虽然这种方式避免了可能重复加载刷新数据的问题,但是会出现重叠的问题。

原因:

当系统内存不足,Fragment 的宿主 Activity 回收的时候,Fragment 的实例并没有随之被回收。Activity 被系统回收时,会主动调用 onSaveInstance() 方法来保存视图层(View Hierarchy),所以当 Activity 通过导航再次被重建时,之前被实例化过的 Fragment 依然会出现在 Activity 中,此时的 FragmentTransaction 中的相当于又再次 add 了 fragment 进去的,hide()和show()方法对之前保存的fragment已经失效了,所以就出现了重叠。

然而我们还是推荐使用这个,我们可以解决。

三、问题重现

既然要解决问题,自然要重现一下!

1.手机的 “设置” - “开发者选项” - 打开”不保留活动”(主要用于模拟Activity被及时回收)

2.把 app 切换到后台,再重新打开,通过点按不同的 tab 来切换 Fragment

ios企业签名 http://www.yc23c.com

上一篇:iOS超级签名原理大家知多少?

下一篇:APP苹果 IOS CALayer的属性和使用

最新文章

最热文章

收缩
  • 电话咨询

  • 稳定不掉签名