### 什么是XRecyclerView 众所周知,Android原生的RecyclerVIew是没有下拉刷新以及上拉加载功能的。如果要使用RecyclerView实现这些功能,就要结合SwipeRefreshLayout来实现,比较复杂。使用XRecyclerView可以简单地实现下拉刷新和上拉加载功能,此外它还集成了自定义添加header,它的使用方式和RecyclerView完全一致。 ### 如何使用 1.添加依赖 ~~~groovy implementation 'com.jcodecraeer:xrecyclerview:1.6.0' ~~~ 2.添加adapter ~~~kotlin adapter = SaleCourseAdapter(response.rv.activeLessonData,activity!!) rv_sale_course.adapter = adapter ~~~ 3.adapter代码 ~~~kotlin class SaleCourseAdapter (private val data: MutableList, private val context: Context) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { //绑定item布局 val view = LayoutInflater.from(context).inflate(R.layout.item_sale_course, parent, false) return ViewHolder(view) } override fun onBindViewHolder(holder: ViewHolder, @SuppressLint("RecyclerView") position: Int) { //加载数据 var dprice = data[position].dprice.toInt() /100 holder.tvPrice.text = "¥"+dprice } override fun getItemCount(): Int { return data.size } inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { //绑定控件 var tvPrice :TextView = itemView.findViewById(R.id.tv_sale_price) } } ~~~ 4.设置下拉刷新和上拉加载 ~~~kotlin //设置是否允许下拉刷新及上拉加载 rv_sale_course.setLoadingMoreEnabled(false) rv_sale_course.setPullRefreshEnabled(false); //设置刷新和加载数据 rv_sale_course.setLoadingListener(object : XRecyclerView.LoadingListener{ override fun onRefresh() { initView() //提示刷新数据完成 rv_sale_course.refreshComplete() } override fun onLoadMore() { //提示加载数据完成 rv_sale_course.loadMoreComplete(); } }) ~~~ github源码地址:[XRecyclerView/XRecyclerView: A RecyclerView that implements pullrefresh and loadingmore featrues.you can use it like a standard RecyclerView (github.com)](https://github.com/XRecyclerView/XRecyclerView) 最后修改:2022 年 05 月 27 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏