如何在Android中的recyclerView中使用loadMore

时间:2017-05-24 11:23:46

标签: android android-recyclerview

在我的应用程序中,我希望从服务器显示数据,并从服务器发送给我所有数据。在android中我应该获取10个数据并显示它,滚动并向服务器显示10个数据发送请求并获取其他10个数据!
对于服务器请求,请使用Retrofit2

如何在android中使用延迟加载程序?

2 个答案:

答案 0 :(得分:0)

检查您的API是否支持限制和偏移参数, 如果它支持然后请求API给你最初的10个元素,偏移量为0,然后到达列表的末尾,再次使用offset =(列表中的项目数)调用服务

答案 1 :(得分:0)

您应该将页面变量传递给Web服务。 这里llManager是附加到您的回收站视图的LinearLayoutManager,总记录是服务中可用数据的总数。

当您到达回收站视图的最后一个对象时,这将调用您的Web服务,并且您在回收站视图中的当前数据小于总可用数据,并增加服务的页面计数值以获取新的页面数据。

还有一件事还会维护一个标志isCalling来检查服务是否已经在运行以获取数据。

recyclerview.addOnScrollListener(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);

                int visibleThreshold = 1;
                int totalItemCount = llManager.getItemCount();
                int lastVisibleItem = llManager.findLastVisibleItemPosition();
                if (totalItemCount <= (lastVisibleItem + visibleThreshold)) {
                    if (totalRecords > totalItemCount && !isCalling) {
                        page = page + 1;

                      callwebservice();
                    }

                }

            }
        });