Java RecyclerView未调用底部的克隆

Java RecyclerView未调用底部的克隆,java,android,android-recyclerview,Java,Android,Android Recyclerview,我正在尝试创建一个带有分页的RecyclerView,当我尝试向下滚动时,我遇到了显示进度条的问题,因为我已经在列表的最后了。有一个回调RecyclerView.OnScrollListener,它有一个处理滚动事件的方法onScrolled,但在没有实际滚动的情况下,它不起作用 当我尝试从底部向下滚动时,有一个onScrollStateChanged方法可以工作,但我的逻辑要求我知道手势的方向(向上/向下),所以这种方法在我的情况下没有帮助 我目前正尝试这样做(显然不起作用): 编辑:我试图检

我正在尝试创建一个带有分页的
RecyclerView
,当我尝试向下滚动时,我遇到了显示进度条的问题,因为我已经在列表的最后了。有一个回调
RecyclerView.OnScrollListener
,它有一个处理滚动事件的方法
onScrolled
,但在没有实际滚动的情况下,它不起作用

当我尝试从底部向下滚动时,有一个
onScrollStateChanged
方法可以工作,但我的逻辑要求我知道手势的方向(向上/向下),所以这种方法在我的情况下没有帮助

我目前正尝试这样做(显然不起作用):

编辑:我试图检测是否在
onscrold
中到达了末尾,这有点奏效,但有时当我试图从服务器获取数据时,我没有收到任何东西,因此在发出这样的请求后,我仍然在列表的末尾,我想向下滚动以再次尝试更新列表,但是我不能,因为没有人打电话给
onscrold


有没有办法解决这个问题?我可以使用另一个回调吗?

我想,要在
recyclerview
的末尾显示进度,您只需要确保已到达该结尾

事情是这样的-

private int visibleThreshold = 1; // trigger just one item before the end
private int lastVisibleItem, totalItemCount;

mRecyclerView.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);

                totalItemCount = mLayoutManager.getItemCount();
                lastVisibleItem = mLayoutManager.findLastVisibleItemPosition();

                if (totalItemCount <= (lastVisibleItem + visibleThreshold) {
                    // ... end has been reached...
                    //... do your stuff over here...
                }
            }
        });
    }
private int visibleThreshold=1;//在结束前只触发一项
private int lastVisibleItem,totalItemCount;
mrecycleView.addOnScrollListener(新的RecycleView.OnScrollListener(){
@凌驾
CrollStateChanged上的公共无效(RecyclerView RecyclerView,int newState){
super.onScrollStateChanged(recyclerView、newState);
}
@凌驾
已填空的公共空间(RecyclerView RecyclerView、int dx、int dy){
super.onScrolled(recyclerView、dx、dy);
totalItemCount=mLayoutManager.getItemCount();
lastVisibleItem=mLayoutManager.findLastVisibleItemPosition();

如果(totalItemCount如果您为min sdk级别23开发,那么您可以使用setOnScrollChangeListener

  recyclerView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
        @Override
        public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {

        }
    });

检查您的回收器视图是否嵌套在NestedScrollView或其他内容中。。。 删除嵌套的滚动视图,它将正常工作。
您可以通过使用recycler view并使用recycler view的view_类型概念来实现任何类型的提要

谢谢,但我不是,最低sdk级别是19查看您的源代码摘录,并猜测您正在尝试在RecyclerView上实现分页,否?如果是,那么为什么不尝试调用
fetchDataFromServer()
onBindViewHolder
方法中,当
RecyclerView.Adapter
将数据绑定到最后一个视图时。是的,这就是我正在做的,我将尝试您的解决方案,谢谢这里提到了
onScrolled
问题的替代解决方案:这个问题有点太老了)但无论如何,谢谢您
  recyclerView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
        @Override
        public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {

        }
    });