RecyclerView 以编程方式单击

2024-02-26

我正在尝试以编程方式单击 recyclerView 的一项。我在用着:

recyclerView.findViewHolderForAdapterPosition(index).itemView.performClick();

当索引属于可见项时,这非常有效。如果该项目不可见(例如,在回收器视图的最后位置),则会抛出异常。

我能做些什么?


我刚刚也遇到了和你类似的问题,我已经解决了!这就是我所做的。

xxx.mRecyclerView.postDelayed(new Runnable() {
            @Override
            public void run() {
                xx.mRecyclerView.scrollToPosition(position);
            }
        },300);


        xxx.mRecyclerView.postDelayed(new Runnable() {
            @Override
            public void run() {
                xxx.mRecyclerView.findViewHolderForAdapterPosition(position).itemView.performClick();
                }
            },400);
        }

您可以滚动到特定项目,然后执行单击。 因为doc https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html#findViewHolderForAdapterPosition(int) say

如果给定位置的项目未布局,则不会创建新项目。

但我知道适配器有数据,所以先滚动到它,然后findViewHolderForAdapterPosition不会为空。

还有一件事,我不知道你如何使用RecyclerView。在我的应用程序中,我在片段中使用它,我不知道为什么我们应该延迟它滚动并执行单击。 (也许是因为生活圈的原因?)。但是这个确实有效。

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

RecyclerView 以编程方式单击 的相关文章

随机推荐

  • 单节点/多核作业的 sbatch 脚本中是否需要 srun?

    我正在运行一个非常常见的生物信息学工具 命令bowtie2 build 它可以在单个节点上使用多线程 不是 MPI 类型作业 我有以下 sbatch 脚本 基本上 bin bash SBATCH nodes 1 SBATCH ntasks
  • PTHREAD_MUTEX_INITIALIZER 与 pthread_mutex_init (&mutex, param)

    有什么区别吗 pthread mutex t lock PTHREAD MUTEX INITIALIZER Or pthread mutex t lock pthread mutex init lock NULL 如果我只使用第一种方法 我
  • 使用其他字典值在字典中传递变量

    当使用另一个字典值作为参数时 如何将包含变量的值分配给字典键 Example name Test vars hosts localhost vars foo a foo a value b a tasks name Fix owneship
  • GIT:如何查看原点的拉/推更改

    我刚刚开始使用 Git 以前称为 Subversion 我遇到了真正的问题 无法看到原始存储库中推送或拉取的更改 我的 架构 是这样的 MAIN CODEBASE gt Development repository 1 gt Develop
  • ABTableViewCell - 添加 UIButton

    我一直在使用 ABTableViewCell 创建快速滚动单元格 除了我不知道如何将 UIButton 添加到我的自定义单元格之外 一切都工作得很好 使用ABTableViewCell 时 您可以使用drawAtPoint 或drawInR
  • 使用 php mail() 函数发送链接

    用户应收到以下格式的电子邮件 复制令牌 xxxxx 并将其粘贴到此Link 我的代码 message Copy the token token generator 10 And paste it in the link a href rec
  • 解析字符串 C# LINQ 表达式

    我试图在这里做一些真正的动态查询 最好不要在运行时调用编译器 我有一个包含 LINQ 表达式的字符串 例如 var s from a in queryable where a Type 1 select a 我怎样才能从中得到结果 IQue
  • 当 Ec2 作为角色运行尝试在 AWS 中获取会话令牌时出错

    我正在 EC2 上运行一个应用程序 使用具有以下权限的角色 sts GetSessionToken sts AssumeRole 当我尝试使用该角色获取临时凭据时 出现错误 Cannot call GetSessionToken with
  • 将 div 宽度设置为不带内联块的内容,并使 div 彼此中心对齐

    我想要一些 div 从其内容中获取宽度 Display inline block 可以做到这一点 但我也希望 div 位于彼此下方 而不是浮动时彼此相邻 使用 float left 而不是 inline block 可以做到这一点 但我希望
  • fetch() 可以做responseType=document吗?

    XHR s responseType document 非常棒 因为它会返回一个 DOM 文档 您可以在其中使用 querySelector 等 var xhr new XMLHttpRequest xhr open GET true xh
  • Microsoft Hive ODBC 驱动程序 2.1.5 超时

    我最近升级到 Microsoft hive odbc 驱动程序版本 2 01 05 1006 于 2016 年 12 月 8 日发布 我的代码适用于驱动程序的先前版本 1 0 现在 当运行我的代码时 我不断收到以下错误 错误 HY000 M
  • PyCharm 的优化导入也可以按字母顺序排列吗?

    我很喜欢 PyCharm 对 Python 导入的优化 以及删除未使用的导入 遵循 PEP8 为它们提供了合理的布局并使它们更易于阅读 有没有办法让 PyC harm 额外按字母顺序排列它们 这将使扫描速度更快 至少对我来说 PyCharm
  • 在 ggplot2 中显式设置面板大小(不仅仅是绘图大小)

    是否可以在 ggplot 中显式设置面板大小 即灰色网格面板 我想象 但找不到 有一些 ggplot 扩展允许类似于panel width unit 3 in panel height unit 4 in 我已经看到了设置整个图大小的解决方
  • 在 Eclipse 中分离编辑器

    有没有办法将编辑器与主 Eclipse 窗口分离 我知道这对于 netbeans 是可能的 但到目前为止我还无法弄清楚如何使用 eclipse 做到这一点 如果可能的话 选择 窗口 新窗户 似乎是分离编辑器的密切替代者 此命令创建一个新的
  • FCM 注册 ID 令牌的最大长度是多少?

    使用 新 Firebase Cloud Messaging 我想可靠地保存客户端设备registration id令牌到本地服务器数据库 以便服务器软件可以向它们发送推送通知 为了保存 100 生成的客户端注册令牌 我应该使用的数据库字段的
  • LD_LIBRARY_PATH 优先级和编译问题

    我正在尝试在Linux机器上安装一些软件 python的rpy2包 特别是rpy2 robjects 如果重要的话 我需要该软件在我的本地空间中查找其共享库 而不是在 usr lib64 等全局空间中查找 我没有这台机器的管理员权限 我的问
  • 如何将 Prisma 与 Electron 结合使用

    我正在使用 Prisma sqlite DB 和 Electron Angular 应用程序 一切正常 直到我尝试创建记录 我在控制台中多次重复收到此错误 https i stack imgur com I0beD png 这是我的 sch
  • MySQL 配置的 JDBC url 使用 utf8 字符编码

    MySQL 5 6 配置 我已经配置了 etc mysql my cnf手动使用utf8 见下文 mysqld character set server utf8 character sets dir usr share mysql cha
  • 如何将命令行参数传递给 Gradle Kotlin DSL

    这是 Groovy 的一个示例 它准确地代表了我想要实现的目标 Command line gradlew jib PmyArg hello build gradle kts task myTask doFirst println myArg
  • RecyclerView 以编程方式单击

    我正在尝试以编程方式单击 recyclerView 的一项 我在用着 recyclerView findViewHolderForAdapterPosition index itemView performClick 当索引属于可见项时 这