gpt4 book ai didi

java - RecyclerView 以编程方式单击

转载 作者:太空宇宙 更新时间:2023-11-03 12:05:31 24 4
gpt4 key购买 nike

我正在尝试以编程方式单击 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/

24 4 0
文章推荐: android - 使用 anything() 时出错;在 Android 中测试不兼容的类型需要 : Matcher found: Matcher