# 下拉刷新和上拉加载 [源码位置](../app/src/main/java/com/abner/list/refresh/RefreshListActivity.kt) ## 普通使用 直接使用SmartRefreshLayout,和官网的使用方式保持一致。 1、xml引入 ```xml ``` 2、实现下拉和上拉 逻辑需要自己处理,和以往使用SmartRefreshLayout方式保持一致。 ```kotlin mSmartRefreshLayout?.setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener { override fun onRefresh(refreshLayout: RefreshLayout) { } override fun onLoadMore(refreshLayout: RefreshLayout) { } }) ``` ## 封装后使用 1、xml里引入 ```xml ``` 2、代码使用 autoRefresh:自动刷新操作 refresh:静默刷新 addData:添加数据,分页会自动追加数据,下拉和上拉会自动关闭 setEnableRefresh:是否禁止下拉 setEnableLoadMore:是否禁止上拉 finishRefresh:关闭下拉刷新 finishLoadMore:关闭上拉刷新 getPager:获取当前页码 refresh:刷新和加载方法 getSmartRefresh:获取SmartRefreshLayout getRecycler:获取RecyclerView addEmptyView:添加空的布局,支持layout和View addErrorView:添加错误的布局,支持layout和View showEmptyView:显示空布局 showErrorView:显示错误布局 hintEmptyView:隐藏空布局 hintErrorView:隐藏错误布局 setHeightWrapContent():设置整体的列表由充满改为包裹内容。 ```kotlin mBinding.refresh.getRecycler().linear() .divider() .set { addLayout(R.layout.layout_item, BR.str) } //刷新和加载 mBinding.refresh.refresh { isRefresh, refreshLayout -> //isRefresh true为下拉 false为上拉 mViewModel.doHttp { addData(it) } }.autoRefresh() ```