RecyclerView的scrollToPosition不触发scrollListener

2024-01-21

我正在使用 RecyclerView 和 ScrollListener:

mRecyclerView.setOnScrollListener(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);
            // Do my logic
        }
 });

当我用手指滚动时,滚动监听器触发正常。

但是当我以编程方式滚动时,就像这样:

mRecyclerView.scrollToPosition(LAST_POSITION);

滚动侦听器未触发。


我遇到了同样的问题并找到了解决方法,即在布局管理器中使用 smoothScrollToPosition 。该方法触发滚动监听器。所以基本上这就是我曾经拥有的:

recyclerView.scrollToPosition(recyclerAdapter.getItemCount() - 1);

现在我改成这样:

recyclerView.getLayoutManager().smoothScrollToPosition(recyclerView, null, recyclerAdapter.getItemCount() - 1);

它对我来说工作得很好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RecyclerView的scrollToPosition不触发scrollListener 的相关文章

随机推荐

  • 迭代 String Swift 2.0

    我正在尝试在 Swift 游乐场中编写一段非常简单的代码 var word Zebra for i in word print i 但是 我总是在第 3 行收到错误 String 没有名为 Generator 的成员 关于为什么这行不通的任
  • 如何在 TH 表标签中使用 CSS Rotate()

    我需要 CSS 专家的帮助 我正在尝试创建一个简单的 html table 其中列标题 th 标签 的文本旋转 270 度以横向显示 我在锚定标题单元格时遇到问题 因此单元格文本的最左侧部分单独与所有单元格的底部或基线对齐 th tags
  • 响应式地包裹和展开 div

    我有一组 6 个 DIV 我想根据浏览器的屏幕宽度将它们每 X 个 div 包装在一个新的 div 中 所以首先我有 div class blogItem div div class blogItem div div class blogI
  • Android VpnService - 如何检查 VpnService 是否已启动?

    我有两个使用 VpnService 类的应用程序 但同时只能有一个 VPN 连接运行 创建新接口时 现有接口将被停用 我希望新应用程序不要启动 vpnservice 以避免旧接口及其 VPN 连接被停用 所以我想在调用 startServi
  • Java POI 找不到符号 WorkbookFactory

    我正在将 HSSF 模型转换为 XSSF 我到处都会遇到一些小错误 我下载了最新的 POI 并将所有 jar 文件放入其中 并将 apache 包含在我的 java 类中 出现此错误 import org apache poi ss use
  • 当JWT过期时,本地存储中存储的JWT会自动删除吗?

    我已将 JWT 存储在用户浏览器的本地存储中 我已使用 nodejs express 将 JWT 的到期日期设置为 7 天 浏览器会检测到过期日期并自动将其从本地存储中删除吗 或者我的服务器是否必须检查 JWT 并从用户浏览器的本地存储中删
  • 在 R 中使用 rvest 抓取链接时出现空节点

    我的目标是获得 Kaggle 的所有挑战及其标题的链接 我正在使用 rvest 库 但我似乎还没有走多远 当我有几个 div 时 节点是空的 我一开始就尝试在第一个挑战中做到这一点 并且应该能够将其转移到之后的每个条目中 第一个条目的 xp
  • xquery-获取单个父元素中不为空的元素的计数

    请考虑以下 XML div p Text sihdfaif p p p p Text sihdfaif p p p p Text sihdfaif p p Text sihdfaif p p Text sihdfaif p div 现在 我
  • NewLine 转义字符不起作用

    我们知道 n 在 JavaScript 中用于换行 我应该如何将它用于输出 在 for 循环中 str prompt Enter any string for i 0 i
  • NSFileManager 列出不包括目录的目录内容

    有没有办法告诉 NSFileManager contentsOfDirectoryAtURL includingPropertiesForKeys options error 收集目录内容时排除目录名称的方法 我有一个显示文件夹的树视图 并
  • SQLite (3.7.17) 版本太旧。 Active Record 支持 SQLite >= 3.8

    我尝试在 EC2 实例中运行 Rails 6 但遇到以下错误 Your version of SQLite 3 7 17 is too old Active Record supports SQLite gt 3 8 如果重要的话 我的 g
  • CUDA如何获取网格、块、线程大小以及并行化非方阵计算

    我是 CUDA 新手 需要帮助理解一些事情 我需要帮助并行化这两个 for 循环 具体来说 如何设置dimBlock 和dimGrid 以使运行速度更快 我知道这看起来像 sdk 中的向量相加示例 但该示例仅适用于方阵 当我尝试修改 128
  • ipad如何知道键盘已被隐藏

    我正在构建一个 ipad 应用程序 它有一些文本字段 点击时会移动到键盘上方 如果点击 计算 按钮 键盘和视图将向下移动 但如果用户点击 ipad 上的隐藏键盘 键盘右下角键 我的观点仍然很高 那么 我如何以编程方式知道 隐藏键盘 已被点击
  • 如何最终确定嵌套的 Observables?

    请看一下以下尝试以获得更好的理解 this loading true obs pipe finalize gt this loading false If set to false here and the person has child
  • 无论路由如何,如何提供相同的静态文件?

    我有一个反应应用程序 我使用 webpack 进行生产构建 现在我尝试设置一个小型 koa 服务器来为生产环境提供 webpack 生成的静态文件 所以我这样做了 import Koa from koa import serve from
  • WCF服务应用程序:该操作必须有一个类型为Stream的参数[重复]

    这个问题在这里已经有答案了 可能的重复 带流的 WCF Rest Web 服务 https stackoverflow com questions 6366489 wcf rest webservice with stream 我正在使用
  • 我可以要求 VC++ 链接器忽略未解析的外部吗?

    我正在尝试使用 VC 构建一个非常复杂的开源项目 该项目由数十个库和一个依赖于这些库的可执行文件组成 由于某些原因 VC 链接器不希望看到在这些库之一中实现的大约 40 个函数 并在每个函数上报告 未解析的外部引用 因此我无法链接 我不想浪
  • Bash 从外部文件读取数组

    我设置了一个 Bash 菜单脚本 也需要用户输入 这些输入被写入 附加到 名为 var txt 的文本文件中 如下所示 input 0 192 0 0 1 input 1 username input 2 example com input
  • 重写 Rails Paperclip 插件的 content_type

    我觉得我有点先有鸡还是先有蛋的问题 我想设置通过回形针上传的文件的 content type 问题是默认的 content type 仅基于扩展 但我想将其基于另一个模块 我似乎可以使用 before post process 设置 con
  • RecyclerView的scrollToPosition不触发scrollListener

    我正在使用 RecyclerView 和 ScrollListener mRecyclerView setOnScrollListener new RecyclerView OnScrollListener Override public