由于需要在Adapter里处理item的点击事件,所以获取Item位置有个方法:
getAdapterPosition()
但是由于RecyclerView的ViewHolder存在回收机制,所以item位置会不准确;
解决方法有:
1、标记不回收;
viewHolder.setIsRecyclable(false)
这样直接“阉割”了RecyclerView最大的特点, 十分不推荐
2、重写方法:
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
再正常用getAdapterPosition()就可以了
注:还有别的方法