Skip to content

Latest commit

 

History

History
25 lines (16 loc) · 1.9 KB

BaseRefreshLoadingView.md

File metadata and controls

25 lines (16 loc) · 1.9 KB

BaseRefreshLoadingView

这一部分包含的功能是列表的下拉刷新,上拉加载;由于涉及到上拉加载所以必定是列表,而列表通常都是RecyclerView,所以这里就没有单独抽取加载更多。

适用场景:

  • 正常的列表包含上拉下拉;
  • 列表只支持下拉刷新;
  • 列表只支持上拉加载;

默认这个界面是加载的垂直线性的列表,而Adapter才用的是BaseRecyclerViewAdapterHelper这个库,选择他的原因也是因为他功能强大,不了解的也可以去看看它的wiki,非常详细。

使用方式:(参照HeaderFragment)

  • 继承相应的BaseRefreshLoadingXxx类;
  • 若不使用垂直线性列表,则需要根据自己的情况重写setLayoutManager方法和addDivider,因为不同的布局,divider的添加方式是不一样的;
  • 重写getAdapter方法,为列表提供adapter,可通过BaseQuickAdapter库去学习如何使用,学会后保证爱不释手;
  • 重写loadData方法,加载数据;
  • refreshLoadComplete,当数据加载完后,需要调用这个方法关闭刷新或加载,其参数为数据加载是否成功,这里根据我内部实现,分页请求的数据时,若是请求失败或请求回来数据大小0,则是false;如果有数据,则为true;

最后一点虽然看起来简单,但是比较关键,灵活的使用就能满足上文中提到的场景,因为加载数据分为分页和不分页,如果不分页,那么我们可以直接refreshLoadComplete(false)即可不再加载下一页;如果分页,就根据刚才说的规则去定义是否成功即可。

如果是我们不想支持下拉刷新的话,可以直接在contentView中不加入PtrFrameLayout,那么就只支持加载更多了。

如果都不想支持,还要使用的话,就是将前边提到的两种方式合并,即可。