Skip to content

Latest commit

 

History

History
94 lines (67 loc) · 6.29 KB

Guide.md

File metadata and controls

94 lines (67 loc) · 6.29 KB

HTRefreshRecyclerView使用文档

HTRefreshRecyclerView 是一种基于 RecyclerView 的支持刷新和加载更多功能的控件。根据README文档,基本了解了HTRefreshRecyclerView的特点以及快速使用的方法。

基本使用

1.自定义刷新和加载更多视图

主要是通过继承HTBaseViewHolder类来完成,详情的实现示例,可以参考demo

基本参数设置

  • 设置刷新视图和加载更多视图:

重写onInitRefreshView()onInitLoadMoreView()方法设置视图。

  • 刷新视图和加载更多视图背景色

使用setRefreshViewBackgroundResId(int refreshViewBackgroundResId)方法设置刷新视图的背景色。

  • 手指移动距离和刷新控件移动距离比值

使用setPullDistanceScale(float pullDistanceScale) 方法设置,参数不对则抛出异常。默认比例值是1.8f

  • 刷新控件的弹簧距离设置(触发刷新事件的距离)

刷新控件的弹簧距离通过设置与刷新控件的高度比例值进行限定,调用setSpringDistanceScale(float springDistanceScale) 方法设置,参数不对则抛出异常。默认比例值是1.0f

  • 动画时间设置

使用setAnimationTime(int animationTime)设置刷新中动画执行时间,参数不对则抛出异常。默认时间是500ms

视图变化接口实现

实现刷新视图变化监听接口HTRefreshUIChangeListener和加载更多视图变化监听接口HTLoadMoreUIChangeListener,从而在各个界面操作视图变化。

HTRefreshUIChangeListener
  • onReset()

控件的刷新视图重置时回调。

  • onRefreshPrepare()

刷新视图移动时回调。

  • onRefreshing()

控件即将处于刷新状态时回调。

  • onRefreshComplete()

控件刷新操作结束时回调。

  • onRefreshPositionChange(float scale, float moveDistance, int refreshStatus, HTViewHolderTracker viewHolderTracker)

刷新视图产生位移时回调,可以用于处理基于移动距离或者比值的视图动画操作等。 参数:scale的变化范围为0~1.0f(达到触发刷新条件以后,继续拉动,也保持1.0f); moveDistance代表刷新控件移动距离的值(与PULL_DISTANCE_SCALE计算之后的距离);refreshStatus表示当前的刷新状态(其值是RefreshStatus类内,如IDLEREFRESH_PREPAREREFRESHINGCOMPLETE);viewHolderTracker用来记录刷新视图的位移数据,可参考HTViewHolderTracker

HTLoadMoreUIChangeListener
  • onLoadMoreStart(boolean hasMore)

控件触发加载更多时回调,hasMore可以用于视图内容相关的逻辑处理。

  • onLoadMoreComplete(boolean hasMore)

控件加载更多操作完成时回调,hasMore可以用于视图内容相关的逻辑处理。

2.刷新控件的使用

HTRefreshRecyclerView的定义

主要通过XML布局文件定义,支持vertical_down(默认)、vertical_uphorizontal_lefthorizontal_right方向的刷新和加载更多。

HTRefreshRecyclerView的常用方法

HTRefreshRecyclerView是基于RecyclerView实现的控件,一些常用方法和RecyclerView保持统一(暂时只提供常用的一些方法),如setAdapter()setLayoutManager()方法等,这里就不做详细介绍了。

其他常用的自定义方法
  • setEnableScrollOnRefresh(boolean enableScrollOnReFresh),设置是否允许刷新的时候,界面滚动
  • setRefreshCompleted(boolean hasMore),设置刷新操作完成
  • startAutoRefresh(),触发自动刷新,刷新状态的视图可见
  • startAutoLoadMore(),触发自动加载更多,加载更多状态的视图可见
  • setLoadMoreShow(boolean loadMoreShow),设置没有更多数据时,加载更多视图的显示样式,默认为一直显示
  • setOnLoadMoreListener(HTLoadMoreListener loadMoreDelegate),设置加载更多事件监听,不设置则默认不支持加载更多功能
  • setOnRefreshListener(HTRefreshListener refreshDelegate),设置刷新事件监听,不设置则默认不支持刷新功能
  • setRecyclerViewDragListener(HTRecyclerViewDragListener recyclerViewDragListener),设置刷新方向的拖拽事件监听
  • setRefreshViewHolder(@NonNull HTBaseViewHolder refreshViewHolder),设置自定义的刷新样式,不设置默认使用带箭头的刷新样式
  • setRefreshViewHolderClass(@NonNull Class<? extends HTBaseViewHolder> mViewHolderClass),设置全局的自定义的刷新样式
  • RecyclerView getRecyclerView(),返回控件内被包裹的RecyclerView对象,建议在当前的刷新控件不能满足某些功能需求的情况下使用

一些功能接口定义

HTRefreshListener

HTRefreshListener是控件的刷新监听事件回调接口,如果用户希望控件支持刷新功能需要实现该接口。

  • onRefresh()

    控件在刷新状态时回调该方法,可以在该方法内处理相关的业务逻辑。刷新完成后必须调用setRefreshCompleted(boolean hasMore)方法完成刷新操作。

HTLoadMoreListener

HTLoadMoreListener是控件的加载更多监听事件回调接口,如果用户希望控件支持刷新功能需要实现该接口。

  • onLoadMore()

    控件在加载更多状态时回调该方法,可以在该方法内处理相关的业务逻辑。加载完成后必须调用setRefreshCompleted(boolean hasMore)方法完成加载操作。

HTRecyclerViewDragListener

HTRecyclerViewDragListener是控件在刷新方向上的拖拽事件监听接口,如果用户希望控件在拉动刷新或者拖拽列表滚动的时候进行相关操作,需要实现该接口。

  • onRefreshViewPrepareToMove()

刷新视图产生位移时回调。

  • onRecyclerViewScroll()

在控件刷新方向上拖拽使列表滚动时回调。该方法基于RecyclerView.OnScrollListener()事件实现,如果已经实现该接口,不用再重复添加RecyclerView.OnScrollListener()事件来监听列表拖拽事件。