java - RecyclerView 以编程方式单击

标签 java android android-recyclerview android-adapter

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

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

当索引是可见项时,这非常有效。如果该项目不可见(例如,在 recyclerview 的最后位置),则会抛出异常。

我能做什么?

最佳答案

我刚和你有一个类似的问题。我已经解决了!这是我所做的。

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

If the item at the given position is not laid out, it will not create a new one.

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

还有一点,我不知道你是怎么使用RecyclerView的。在我的应用程序中,我在一个 fragment 中使用它,我不知道为什么我们要延迟它滚动和执行点击。 (可能是生活圈的原因吧?)但是这个确实管用。

关于java - RecyclerView 以编程方式单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33336677/

相关文章:

android - 折叠工具栏与包含 SwipeRefreshLayout 和 RecyclerView 的 fragment 一起使用

android - 如何检查Recyclerview是否为空

android - DrawerLayout 上的水平回收 View

java - Sobel 过滤器无法正常工作

java - 如何处理空参数的 JPA 查询方法中的所有枚举值

java - System.out.println 表示 out 无法解析或不是字段

java - Android(4.4+) WebView 忽略 x-frame-options

android - 如何继承ArrayAdapter?

java - 调用方法有问题

java - 如何在android中实现手绘图片裁剪?