使用原因:做应用开发时,一个Activity里面可能会以viewpager与多个fragment来组合使用,而如果每个Fragment都需要去加载数据,或从本地,或从网络加载,那么在这个Activity刚创建的时候就变成需要初始化大量资源。
应用懒加载后,就能做到当切换到这个fragment时,它采取初始化。
方法:
继承Fragment并重写setUserVisibleHint()这个方法。
在用我们需要的Fragment继承BaseFragment
继承的lazyLoadData()的方法是这样写的
应用懒加载后,就能做到当切换到这个fragment时,它采取初始化。
方法:
继承Fragment并重写setUserVisibleHint()这个方法。
<span style="font-family:KaiTi_GB2312;font-size:18px;">public abstract class BaseFragment extends Fragment {
//用于表明当前的Fragment是否可见
protected boolean isVisible;
/**
* 在这里实现Fragment数据的缓加载
*/
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
// TODO Auto-generated method stub
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser){
isVisible =true;
lazyLoadData();
}else{
isVisible = false;
}
}
public abstract void lazyLoadData();
}</span>
在用我们需要的Fragment继承BaseFragment
继承的lazyLoadData()的方法是这样写的
<span style="font-family:KaiTi_GB2312;font-size:18px;">@Override
public void lazyLoadData() {
long endTime = System.currentTimeMillis();
if(isVisible && isInit ){
if((mData.size()>0 && endTime-startTime>1000*60) || mData.size()<=0)
refreshData();
startTime = System.currentTimeMillis();
}
}</span>
本文介绍了一种在Android应用中实现Fragment懒加载的有效方法。通过继承Fragment并重写setUserVisibleHint()方法,可以确保Fragment仅在其可见时才加载数据,从而优化资源使用并提升用户体验。
368

被折叠的 条评论
为什么被折叠?



