fragment切换来切换去发送花屏或重叠的问题

如果有谁发生这种问题  我觉得首先看你的fragment切换机制


你使用的是add还是replace   这两种产生的效果不一样的


其实fragment在被切换的时候  java  机制是这样的   :把引用销毁   内存不动  


这句话怎么理解,因为我们在java中申请一个变量的时候都是这样的,现在 堆内存 中给你分配地址空间,然后在  栈内存 中给你装上内容  

栈内存是指向  堆内存,理解了这个上面那句话就好理解


然后我们再回到fragment切换的时候,首先java把当前的fragment销毁掉,然后把切换之后的fragment显示出来,

而这个销毁的过程你必须清楚,    还是上面那句话,重要的事说三片    销毁引用   内存不动


这个时候发生  一种  空  错误 或者  发生一种你忘记了执行hide代码的问题:

1.如果引用不存在了,肯定是无法销毁的   这个时候还没有报错,但是错误的体现就在花屏上

2.如果你根本就忘记了hide,那谁都怪不了

在我们程序中销毁大家应该都知道就是hide   或者你自己再写个函数remove里面肯定调用的也是hide了,


好了 如果你这个时候都看懂了,知道了这个没有hide掉,也就是当我们切换的时候  这里假设从A切换到B  那么A是没有被成功hide哦


然后fragment管理事务器就会把B显示出来,好了这里就是重点了,B会被java创建  而由于A没有被成功hide  A也会被创建,因为只要有fragment没有被hide  

fragment管理事务器都会负责把你显示出来,这个应该清楚把,


那么A跟B都创建了,这个时候肯定就会发生  屏幕布局重叠的情况了吧,  就是我们说的花屏问题   


这里面的原理我觉得我已经说清楚了,如何修改修复这个bug  就需要我们去看我们有没有成功把不需要的fragment给  hide掉了


从这个方向你一定能解决问题的,阿西吧保佑你完美解决问题!!!!


推荐看这篇文章:我觉得他说的蛮好

http://www.tuicool.com/articles/jea2QfY

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值