我想知道如何使用swipe to refresh方法在recyclerview上加载上一页项目。似乎无处可寻。我创建了一个包含无尽的Recyclerview的应用程序,其中包含来自在线论坛的数据。当用户一直向下滚动到底部时,它将加载下一页并在recyclerview上填充下一条注释。它工作正常。
现在我想实现相同的功能,但在用户滚动到顶部时加载上一页。我希望用户进行滑动,这将加载上一页并使用顶部的先前注释填充recyclerview。我怎么做?
MainActivity.java
private ArrayList<CommentItem> commentsList = new ArrayList<CommentItem>();
private RecyclerAdapter adapter_thread;
private int pageNumber = 1;
//recyclerview initialization have been done here
adapter_replies.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore() {
commentsList.add(null); //to show progressbar at the bottom while loading the next page
adapter_thread.notifyItemInserted(commentsList.size() - 1);
++pageNumber;
getComments(); //async task load next page comments
}
});
RecyclerAdapter.java
private boolean loading;
private OnLoadMoreListener onLoadMoreListener;
private int visibleThreshold = 1;
public RecyclerAdapter(Context context, final ArrayList<CommentItem> commentsList, RecyclerView recyclerView) {
this.commentsList= commentsList;
this.context = context;
if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {
final LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView
.getLayoutManager();
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView,
int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
totalItemCount = linearLayoutManager.getItemCount();
lastVisibleItem = linearLayoutManager.findLastVisibleItemPosition();
firstVisibleItem = linearLayoutManager.findFirstVisibleItemPosition();
verylastVisibleItem = linearLayoutManager.findLastCompletelyVisibleItemPosition();
if (!loading && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
if (onLoadMoreListener != null) {
onLoadMoreListener.onLoadMore();
}
loading = true;
}
}
});
}
}