Recyclerview刷起分页Android
我在我的应用程序中使用带有CardView的RecyclerView,当用户滑动到RecyclerView的最末端时,我尝试进行分页操作,然后如果用户向上滑动,则加载更多内容。(如向下滑动以刷新)。我现在看到的是当用户到达它将自动加载的RecyclerView的最后一项时。我如何更改它,以便在用户停车时加载它Recyclerview刷起分页Android,android,pagination,Android,Pagination,我在我的应用程序中使用带有CardView的RecyclerView,当用户滑动到RecyclerView的最末端时,我尝试进行分页操作,然后如果用户向上滑动,则加载更多内容。(如向下滑动以刷新)。我现在看到的是当用户到达它将自动加载的RecyclerView的最后一项时。我如何更改它,以便在用户停车时加载它 private RecyclerView.OnScrollListener recyclerViewOnScrollListener = new RecyclerView.OnSc
private RecyclerView.OnScrollListener recyclerViewOnScrollListener = new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView,
int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if(dy > 0) //check for scroll down
{
visibleItemCount = gmLayoutManager.getChildCount();
totalItemCount = gmLayoutManager.getItemCount();
pastVisiblesItems = gmLayoutManager.findFirstVisibleItemPosition();
int loadedItems = pastVisiblesItems + visibleItemCount;
//System.out.println(visibleItemCount + "/n" +totalItemCount + "/n"+pastVisiblesItems + "/n" + loadedItems);
if (true)
{
if ( (visibleItemCount + pastVisiblesItems) >= totalItemCount)
{
loading = false;
Log.v("...", "Last Item !");
//Do pagination.. i.e. fetch new data
String api = "stores?offset=10";
getData(api); //Load more data
}
}
}
}
};
我想您需要在父视图上设置一些
onTouchListener
。并在RecyclerView中发送并设置一些变量,以指示它是否位于底部。因此,在listener中,您基本上可以这样做:
if (recyclerView.isAtBottom() && motionEvent.getAction() == MotionEvent.ACTION_MOVE){
//calculate some offset here
if (offset>MY_OFFSET){
String api = "stores?offset=10";
getData(api); //Load more data
}
}
此外,当触摸式监听器到达按钮时,您可能需要从
RecyclerView
触发一些事件,以便此时记住指针位置。嘿,Jerryko,请查看Loadmore RecyclerView的示例