顶部导航条+Viewpager+Fragment取消页面预加载

本文介绍了一种在使用View+Fragment进行多页面显示时,通过取消预加载来优化页面加载速度的方法,避免了因长时间加载数据导致的页面卡顿问题。

效果如图:


在项目开发中常常会使用到多页面数据显示以及加载,但是在项目中使用view+fragment做多页面显示的时候会有些问题,如加载数据时间长导致页面滑动卡顿。

如何让来解决这些问题呢?我们可以使用取消预加载来使页面显示哪一页就加载哪一页的数据,原本系统提供的有个setOffscreenPageLimit方法可以,但是使用setOffscreenPageLimit只缓存一个页面,那么每次切换页面都会重新加载数据,这样还是导致用户体验不好。

这里可以使用Fragment的生命周期来完成取消预加载这么个功能。

1:初始化页面数据

2:在其中一个fragment实现onResume(),setUserVisibleHint(),onCreateView()

onresume是生命周期方法,在onstart方法之后调用,在该方法过后这个fragment就处于活动显示中了,方法里面getUserVisibleHint()这个方法是页面是否显示了。页面显示则调用getdata()。

getdata方法里面有init这个变量,这个变量是用来判断该fragment的onCreateView是否被调用,因为在onCreateView方法里给init赋值为true,init=true;调用了这个方法说明该fragment正在被显示。

setUserVisibleHint方法里面有一个bool参数,这个也是fragment的一个方法,每次切换到该页面都会调用setUserVisibleHint方法,参数表示页面是否显示。

这样可以保证数据在每个fragment显示的时候才去服务器请求数据,这样解决卡顿问题,重新加载问题。

demo下载地址:http://download.youkuaiyun.com/detail/leifengpeng/8511227

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值