Skip to content

Files

Latest commit

4649003 · May 9, 2018

History

History
27 lines (16 loc) · 1.73 KB

BaseRefreshView.md

File metadata and controls

27 lines (16 loc) · 1.73 KB

BaseRefreshView

首先这里的下拉刷新使用的是android-Ultra-Pull-To-Refresh这个库(版本是1.0.11),我把代码提取到了项目中来,因为我认为这样更加便于调整和使用。

这里说到的下拉刷新,根据这个库的能力可以知道是基本支持所有系统提供的View的,如果是自定义的话,我们可以重写checkCanDoRefresh方法,告诉这个组件什么时候能刷新,这里就不过多的介绍这个库的一些实用方式了,不了解的可以去看看这个库的demo,想深入了解的可以去看看这篇文章android-Ultra-Pull-To-Refresh 源码解析

回到正题,这个界面的使用同样和BaseHeaderView一样,都预定义了这个组件的id,我们只需要在contentView中放入这个组件,并且保证id和预定义的一致即可,当然是用规则需要遵循这个组件的规则,布局的时候只能有一个子View,因为Header我们在代码中动态添加了。如果你不信,估计就会遇到这个异常:

if (childCount > 2) {
    throw new IllegalStateException("PtrFrameLayout can only contains 2 children");
} 

1、autoRefresh

如果调用便可自动回调onRefreshBegin方法,同时会把Header显示出来;

2、onRefresh

这个方法会要求我们重写,我们就可以在这个方法中刷新数据;

3、refreshComplete

数据加载完成后,便可调用这个方法关闭header。

注:若是使用到RecyclerView相关的刷新则推荐使用BaseRefreshLoadView,因为能减少你自己去设置RecyclerView的过程,具体怎么操作在后文中会有介绍