RecyclerView 的上拉刷新加载更多的基本实现 参考上篇: https://blog.youkuaiyun.com/whjk20/article/details/106975642
上拉刷新还可以对RecyclerView 添加滑动监听 (addOnScrollListener), 然后通过回调进行模拟数据更新
这里主要把加载更多插到RecyclerView 最后, 并非RecyclerView的数据中。
目录
1.布局文件 (分开加载中和加载失败)
此处省略,跟之前的差异不大,只是分成两个文件
2. 数据类型(增加一个数据状态标志位)
package com.example.androidrecyclerviewtest.data
class UserDataLoadMore {
var userName: String
var userImageId: Int
var state: Int
// state 在adpater 的getItemViewType中用到
constructor(userNameId: String, userImageId: Int, state: Int) {
this.userName = userNameId
this.userImageId = userImageId
this.state = state
}
}
其中有三种状态:
const val TYPE_NORMAL = 0
const val TYPE_LOADING = 1
const val TYPE_RELOAD = 2
3. 修改Adapter
class ListViewLoadMoreScrollAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
//方法2: 通过设置接口回调,则不需要持有具体类的引用
private var loadMoreScrollActivity: ListViewLoadMoreScrollActivity
private var datas: MutableList<UserDataLoadMore>
constructor(loadMoreScrollActivity: ListViewLoadMoreScrollActivity, datas: MutableList<UserDataLoadMore>) {
this.loadMoreScrollActivity = loadMoreScrollActivity
this.datas = datas
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
var view: V