我正在用json将数据归档到recyclerview。
我想要在recyclerview中每10个项目中有新数据。


  所以
  10个数据->最后在recyclerview中到达了10个数据....


那么,如何检测到该用户位于recyclerview的结尾?
或者,如果有其他解决方案,则可以提交您的想法。我现在使用它,但是有时它不起作用...

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {

                super.onScrollStateChanged(recyclerView, newState);
               // MyLog.log("rcv1 " + newState);


            }

            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                MyLog.log("rcv1 dy: "+ dy);
                if (dy>=0 ){
                    llHeading.setVisibility(View.GONE);

                }else {
                    llHeading.setVisibility(View.VISIBLE);

                }
                totalItemCount = layoutManager.getItemCount();
                visibleItemCount = layoutManager.getChildCount();
                pastVisiblesItems = layoutManager.findFirstVisibleItemPosition();
                if (!loadingItems && (visibleItemCount + pastVisiblesItems) >= totalItemCount ) {
                    loadingItems = true;
                    MyLog.log("rcv1 came to an end.");

                    getDataClient("",rccount*10,ranking_sort_by,ranking_desc,1);


                }

            }


        });

最佳答案

在适配器中,可以使用onBindViewHolder然后检查位置。

public void onBindViewHolder(ViewHolder holder, int position) {
    if (position == getItemCount() - 1) {
        // You are at the end of list
    }
}

07-24 09:49
查看更多