android - 如何初始化分页变量
问题描述
我正在使用一个整数变量。
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 值。页面变量存储下一个增量值。
解决方案
您可以使用以下代码进行分页,效果很好。将您的第一页数据添加到 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。它可以缺少分号等。
推荐阅读
- laravel - Data from geoJSON API call in Larvel 5.8
- c# - C# 接口和泛型协同工作
- arrays - Efficiently read CSV file into array of doubles in C
- pandas - Pandas read_hdf5 partial matching of a string
- assembly - 如何让 BSR 指令在 64 位上工作?
- unix - 使用 awk 比较来自两个不同文件的两个字段
- javascript - 具有多个过滤器的 Javascript 过滤器数组
- vbscript - 使用 vbscript 仅删除文本文件的第一行
- c# - 关闭返回值集中的计数
- javascript - 用正则表达式(正则表达式)条件匹配javascript的变量替换字符串的一部分