【问题标题】:How to detect recyclerview’s scrolling outside it bounds?如何检测 recyclerview 的滚动超出边界?
【发布时间】:2019-06-14 07:35:10
【问题描述】:

有没有办法检测到用户正在尝试滚动 recyclerview 并且没有发生实际滚动?例如,垂直回收器视图位于其顶部位置,用户尝试向上滚动。

【问题讨论】:

    标签: android android-recyclerview scroll


    【解决方案1】:

    是的,您可以使用回收站视图的 onScroll 函数检测滚动行为。

     recyclerView
                    .addOnScrollListener(new RecyclerView.OnScrollListener() {
                        @Override
                        public void onScrolled(RecyclerView recyclerView,
                                               int dx, int dy) {
                            super.onScrolled(recyclerView, dx, dy);
    
                            lastVisibleItem = linearLayoutManager
                                    .findLastVisibleItemPosition();
                            if (!loading
                                    && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
                                // Do something
    
                            }
                        }
                    });
        }
    

    正如您在上面看到的,(linearLayoutManager.findLastVisibleItemPosition();) 为您提供了最后一个可见位置,一旦用户尝试滚动回收站视图,它往往会更改最后一个可见位置。

    甚至 dx 给你 int:水平滚动的量和 dy (int) 给你垂直滚动的量。 如果布局计算后可见项目范围发生变化,也会调用此回调。在这种情况下,dx 和 dy 将为 0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 2015-07-31
      • 2023-03-19
      • 1970-01-01
      • 2013-05-25
      相关资源
      最近更新 更多