使用RxJava实现PullScrollView,PullListView, PullGridView 等进入自动下拉刷新

记得之前使用postDelayed,判断getHeaderSize是否为0来确定是否调用下拉刷新方法,详细可看我的另外一篇文章http://blog.csdn.net/qq_24641847/article/details/46864809
但是其中有一个缺陷就是必须继承重新添加,如果所有的下拉刷新都加上这个处理的话,就需要额外写不少代码,现在我们抽出一个工具类,使用RxJava来实现,
核心代码:

public class PullToRefreshUtil {

    public static void setRefreshing(PullToRefreshBase pullToRefresh, LifecycleTransformer transformer) {
        if (pullToRefresh != null)
            Observable.interval(200, TimeUnit.MILLISECONDS)
                    .filter(aLong -> pullToRefresh.getHeaderLayout().getHeight() > 0).firstElement()
                    .compose(transformer)
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(aLong -> pullToRefresh.setRefreshing());
    }
}

fragment调用:(activity类似)

PullToRefreshUtil.setRefreshing(mRefreshScrollView, bindUntilEvent(FragmentEvent.DESTROY_VIEW));

可以看到我们不用多添加任何代码,只需要在需要用的时候调用一些就好
我这里使用绑定了界面生命周期,如果不使用,记得主动在界面销毁的时候解绑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值