RecyclerView-如何知道是否有5个项目要滚动?

时间:2018-11-26 14:52:29

标签: android android-recyclerview

我从Internet加载数据,正在分页。

我使用此代码加载更多数据:

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
            super.onScrollStateChanged(recyclerView, newState);
            if(!recyclerView.canScrollVertically(1)&&loading==false&&postson==false){
                loading=true;
                lastitem+=20;
                loaddata(lastitem);

            }
        }


    });

但这仅在回收者视图到达底部时才起作用,我认为这可能会使用户感到困惑。 我想在剩下5个项目时加载更多数据。

该怎么做?

1 个答案:

答案 0 :(得分:1)

检查布局管理器的项目计数(使您的布局管理器成为全局),可能是线性布局管理器,然后从那里比较两个,就像这样:

    @Override
    public void onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
        super.onScrolled(recyclerView, dx, dy)
        if (!isRequesting) {
            int visiblePicturePosition = linearLayoutManager.findLastVisibleItemPosition()
            int totalItems = linearLayoutManager.getItemCount()
            if (totalItems - visiblePicturePosition <= 5) {

                //Do what you want here
        }
    }