添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Page Refresh Layout

open class PageRefreshLayout : SmartRefreshLayout , OnRefreshLoadMoreListener

扩展 SmartRefreshLayout 的功能

功能

  1. 下拉刷新

  2. 上拉加载

  3. 拉取

  4. 预加载

  5. 预拉取

  6. 自动分页

  7. 添加数据

  8. 缺省状态页

Constructors

PageRefreshLayout
Link copied to clipboard
fun PageRefreshLayout (context: Context )
fun addData (data: List < Any ?>?, adapter: BindingAdapter ? = null, isEmpty: () -> Boolean = { data.isNullOrEmpty() }, hasMore: BindingAdapter .() -> Boolean = { true })
自动分页自动加载数据, 自动判断当前属于下拉刷新还是上拉加载更多

实现

getState 等于 RefreshState.Refreshing 或者
index 等于 startIndex 会判断为下拉刷新 index 初始值为 startIndex , 每次调用本方法会将 index 递增, 下拉刷新会将 index 重置为 startIndex

注意事项

请勿每次给 data 赋值同一个集合对象, 因为为了保证rv持有数据集合为一个对象, 覆盖数据会先clear再addAll新的数据集合本方法只是简化分页列表数据赋值, 如果出现特别的需求请尝试自己更新rv数据集(即不使用本方法), 比如使用 BindingAdapter.models
fun finish (success: Boolean = true, hasMore: Boolean = true)
open override fun finishLoadMore (delayed: Int , success: Boolean , noMoreData: Boolean ): RefreshLayout
open override fun finishRefresh (delayed: Int , success: Boolean , noMoreData: Boolean ?): RefreshLayout
fun onContent (block: View .( Any ?) -> Unit ): PageRefreshLayout
showContent 时会回调该函数参数, 一般将网络请求等异步操作放入其中
fun onEmpty (block: View .( Any ?) -> Unit ): PageRefreshLayout
fun onError (block: View .( Any ?) -> Unit ): PageRefreshLayout
fun onLoading (block: View .( Any ?) -> Unit ): PageRefreshLayout
fun onRefresh (block: PageRefreshLayout .() -> Unit ): PageRefreshLayout
下拉刷新回调 如果不设置 onLoadMore , 上拉加载也会执行此方法触发方式有以下三种:
fun setOnMultiStateListener (onMultiStateListener: OnMultiStateListener ): PageRefreshLayout
fun setRetryIds ( @ IdRes () vararg ids: Int ): PageRefreshLayout
设置 errorLayout 中的视图点击后会执行 StateLayout.showLoading 并且500ms内防重复点击