我使用了一个intiger变量。
int page=1;
private void pagination() {
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
/*if (newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
isScrolling = true;
}*/
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
currentItems = manager.getChildCount();
totalItems = manager.getItemCount();
scrollOutItems = manager.findFirstVisibleItemPosition();
if (isScrolling) {
if (totalItems > previousTotal) {
previousTotal = totalItems;
page++;
isScrolling = false;
}
}
if (!isScrolling && (currentItems + scrollOutItems == totalItems)) {
progressBar.setVisibility(View.VISIBLE);
//page=page+1;
/*new Handler().postDelayed(new Runnable() {
@Override
public void run() {
}
}, 5000);*/
getNext();
progressBar.setVisibility(View.GONE);
isScrolling = true;
Log.v("All Courses", "Page Number: " + page);
}
}
});
}我想要显示所有课程,但使用8课程显示,当滚动然后下8课程显示。然后我点击任一课程,然后转到新的片段,但我在下一个片段中按了后退按钮,返回到课程片段,然后页面变量不初始化1值。页面变量存储下一个增量值。
发布于 2020-11-12 15:27:17
您可以使用以下代码进行分页,它工作得很好。将您的第一页数据添加到yourRecycler ,然后设置以下addOnScrollListener.:
private Integer currentPage = 1;
yourRecycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
void onScrollStateChanged(RecyclerView recyclerView, Integer newState) {
super.onScrollStateChanged(recyclerView, newState)
if (!recyclerView.canScrollVertically(1)) {
currentPage++;
getNextPage();
}
}
})您需要在以下函数中添加您的新页面添加操作:
private void getCurrentPage(){
//add new page data to yourRecycler
}注意:这是kotlin代码,我转换成了java。它可以包含缺少的分号等。
https://stackoverflow.com/questions/64797896
复制相似问题