首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测recyclerview的滚动超出它的边界?

如何检测recyclerview的滚动超出它的边界?
EN

Stack Overflow用户
提问于 2019-06-14 15:35:10
回答 1查看 267关注 0票数 1

有没有一种方法可以检测到用户正在尝试滚动回收站视图,而实际的滚动没有发生?例如,垂直回收器视图位于顶部,用户尝试向上滚动它。

EN

回答 1

Stack Overflow用户

发布于 2019-06-14 15:51:48

是的,你可以使用回收器视图的onScroll功能来检测滚动行为。

代码语言:javascript
运行
复制
 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。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56593527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档