Recyclerview刷起分页Android

Recyclerview刷起分页Android,android,pagination,Android,Pagination,我在我的应用程序中使用带有CardView的RecyclerView,当用户滑动到RecyclerView的最末端时,我尝试进行分页操作,然后如果用户向上滑动,则加载更多内容。(如向下滑动以刷新)。我现在看到的是当用户到达它将自动加载的RecyclerView的最后一项时。我如何更改它,以便在用户停车时加载它 private RecyclerView.OnScrollListener recyclerViewOnScrollListener = new RecyclerView.OnSc

我在我的应用程序中使用带有CardView的RecyclerView,当用户滑动到RecyclerView的最末端时,我尝试进行分页操作,然后如果用户向上滑动,则加载更多内容。(如向下滑动以刷新)。我现在看到的是当用户到达它将自动加载的RecyclerView的最后一项时。我如何更改它,以便在用户停车时加载它

    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的示例