性能优化:让ViewPager+Fragment模式更流畅

What:

分析卡顿的原因,根据具体需求综合考虑选择合适的解决方案,达到既满足产品需求,又能提高Fragment加载速度,减缓避免UI卡顿现象,达到性能调优的自我标准。

Why And How:

1.加载量过于笨重:需求允许的情况下,尽可能让首页的Fragment布局上轻量化。

      解决方案:(1)进行布局优化,减少嵌套层数;(2)避免加载过多大图;(3)避免首次加载的情况触发多次刷新UI。

2.频繁加载销毁Fragment:如果默认缓存数量为1或者相对比较少的情况,Viewpager来回切换将会触发这种场景。

      解决方案 :(1)手动设置setOffscreenPageLimit(),可以自定义缓存数量。如果Fragment不多的话。

3.懒加载Fragment:(1)仅加载可见状态的Fragment;(2)初见状态提供简单布局的骨架屏,然后再做进一步的加载。

4.非首页、并且Fragment较多的情况:可以在执行上述第三步的操作之后。进一步优化:对于UI过于笨重,或者说需要访问网络大量加载更新UI的话,开启一个延时任务,handler.postDelayed(Tag,1000);判断当前Fragment停留时间,如果停留时间没有达到一定阀门的话,便取消加载。

那么具体怎么判断当前Fragment是否发生改变了呢?可以通过ViewPager的onPageSelected(position)监听并保存当前Fragment的位置,如果发生改变,并取消加载handler.removeCallbacks(Tag)。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值