使用EventBus 3.0实现ViewPager的懒加载

ViewPager的懒加载是指在ViewPager中当ViewPager的item可见时才进行加载的情况。因为ViewPager默认的预加载是1,并且通过viewpager的setOffscreenPageLimit(0);方法设置预加载为0无效。

这里主要讲EventBus在ViewPager的懒加载中的应用,EventBus的使用请自行百度。

1.使用ViewPager+Fragment实现选项卡。具体实现步骤网上有详尽的文档。
2.在Fragment里注册和订阅EventBus 。
1.在Fragment的onCreatView()方法里将控件初始化结束后,和onPause()方法里注册和反注册EventBus。
2.在Fragment里实现事件订阅方法,并将数据加载的处理放在这里。
例如:

     @Subscribe(threadMode = ThreadMode.MAIN,sticky = true,      priority = 100)
     public void onMoonEvent(MessageEvent messageEvent){
           //此处进行逻辑判断,以及数据加载
    }

3.在选项卡被点击时发布订阅事件:

EventBus.getDefault().postSticky(new MessageEvent(2));

总体思路是ViewPager在预加载时,可以进行界面初始化,但不进行数据加载,用以节省内存。在点击选项卡时,使用EventBus发布加载数据的事件,通知Fragment加载数据。

你可能感兴趣的:(安卓)