hel*_*ind 3 java android android-adapter android-recyclerview
我正在尝试以编程方式单击recyclerView的项目.我正在使用:
recyclerView.findViewHolderForAdapterPosition(index).itemView.performClick();
Run Code Online (Sandbox Code Playgroud)
当索引是可见项时,这非常有效.如果该项目不可见(在recyclerview的最后位置,对于istance),则抛出异常.
我能做什么?
小智 6
我和你的问题也有类似的问题.我已经解决了!这就是我做的.
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);
}
Run Code Online (Sandbox Code Playgroud)
您可以滚动到特定项目,然后执行单击.因为医生说
如果未布置给定位置的项目,则不会创建新项目.
但我知道适配器有数据,所以首先滚动到它,并且findViewHolderForAdapterPosition不会为null.
还有一件事,我不知道你如何使用RecyclerView.在我的应用程序中,我在片段中使用它,我不知道为什么我们应该延迟它滚动并执行单击.(也许是因为生命圈?)但这确实有效.
您可以onClick直接调用,假设视图管理其自己的单击侦听器。
View view = recyclerView.findViewHolderForAdapterPosition(index).itemView;
view.onClick(view);
Run Code Online (Sandbox Code Playgroud)
如果点击侦听器位于其他位置,您只需使用该onClick方法获取对该对象的引用,并使用正确的视图作为参数来调用它。
| 归档时间: |
|
| 查看次数: |
3400 次 |
| 最近记录: |