看源码看了半天,才知道怎么用。目前这种可以实现类似于微信聊天的功能
针对版本:com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.1
不同版本实现可能不同
1、BaseQuickAdapter 实现 UpFetchModule 方法。 xxx implements UpFetchModule
public class ChatGroupMultiItemAdapter extends BaseMultiItemQuickAdapter<SingleChatBean, BaseViewHolder> implements UpFetchModule {
2、初始化代码 设置下拉加载
chatAdapter.upFetchModule?.isUpFetchEnable = true
chatAdapter.upFetchModule?.isUpFetching = true//网络数据正在加载中,不会直接执行setOnUpFetchListener.否则会自动执行一次。
chatAdapter.upFetchModule?.setOnUpFetchListener {
chatAdapter.upFetchModule?.isUpFetching = true//不会自动加载数据
page++
getNetData(page)
}
page=1
getNetData(page)
3、 返回数据后
hideLoadingDialog()
if (page == 1) {
chatAdapter.setNewData(singleChatList)
chatRecyclerView.scrollToPosition(singleChatList.size - 1)//滚动到最后一条消息不然会一直执行 下拉加载 顶部加载
} else {
chatAdapter.addData(0, singleChatList)//设置分页返回的数据,插入第一个位置。
}
chatAdapter.upFetchModule?.isUpFetching = false// 设置可 加载数据 下拉加载 顶部加载