ViewPager实现Fragment懒加载

通过在onPageChangeListener中调用懒加载,当Fragment切换到下一个或者切换中进行懒加载。

1、先写一个接口

原因:

1、隔离具体实现(不依赖具体Fragment,否则在用的时候就需要一个一个对具体实现进行判断)
2、仅处理需要懒加载的Fragment

public interface ILazyLoad {
    void lazyLoad();
}

2、实现接口

这里进行isLoaded标识,标识是否已经加载。当然也可以根据具体需要在以下第三步进行统一处理。

public class FileManagementFragment extends BaseFragment implements ILazyLoad {
	public void lazyLoad() {
	    if (isLoaded) return;
	    this.storageList = getAllStorage();
	    showStorageUsage();
	    showAvailableStorage();
	    this.isLoaded = true;
	}
}

3、统一处理懒加载

this.viewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        if (positionOffsetPixels < viewPager.getWidth() >> 1) return;//是否滑动超过一半
        if (position >= adapter.getCount() - 1) return;//是否滑到了最后
        Fragment item = adapter.getItem(position + 1);//拿到下一个Fragment(这里是position是上一个,因为这个事件是滑动中触发)
        if (!(item instanceof ILazyLoad)) return;//是否实现特定接口
        //触发懒加载
        ILazyLoad lazyLoad = ((ILazyLoad) item);
        lazyLoad.lazyLoad();
    }
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值