android ViewPager预加载问题


使用ViewPager时候,PagerAdapter一般都会提前加载 前一个View + 当前View + 下一个View,达到滑动平滑的效果,这么做当然是非常好的,

但是用户只停留在第一个View上的时候,下一个View预加载了,浪费了资源怎么办?

相信各位都曾经遇到过这样的问题,viewPager究竟如何才能完美禁止预加载问题呢?


先来看下微信的开发人员是怎么做的:



微信在这里实现原理是:先添加一个View到viewPager当中,当停止滑动时才加载数据。

我觉得这种办法相当好,既不影响界面美观,又不会浪费资源,简直是完美的方案!


那么问题来了,怎么做到呢?

OnPageChangeListener 是viewPager的一个滑动监听


ViewPager.OnPageChangeListener onPageChangeListener = new ViewPager.OnPageChangeListener() {



        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
滑动时回调

        }


        @Override
        public void onPageSelected(int position) {

选择时回调
        }


        @Override
        public void onPageScrollStateChanged(int state) {
也是滑动时回调,监听状态 

state = 0时:静止状态

state = 1:滑动状态

state = 2:滑动停止

        }

    };


我们只需要在onPageScrollStateChanged方法中加入一个回调,在实现的时候判断一下state就行了,当state==2的时候说明滑动停止,然后initList到view当中


看我的实现效果,我只是设置了几张图片进入,然后开辟子线程模拟加载数据,数据加载完毕后setView




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值