【发布时间】:2016-08-16 17:37:12
【问题描述】:
这是我的代码 -
public void onBindViewHolder(myViewHolder holder, int position) {
//1. details obj = list.get(holder.getAdapterPosition());
//2. details obj = list.get(position);
holder.position = position;
}
我收到警告
不要将位置视为固定;仅立即使用并致电 holder.getAdapterPosition() 稍后查找 RecyclerView 不会 当 item 的位置发生变化时再次调用 onBindViewHolder 数据集,除非项目本身无效或新位置 无法确定。因此,您应该只使用 获取this里面的相关数据项时的位置参数 方法,不应保留副本。如果你需要的位置 稍后的项目(例如在点击侦听器中),使用 getAdapterPosition() 稍后会有更新的适配器位置。
所以我对 1 和 2 感到困惑,我应该更喜欢哪个,为什么?正如它所说,getAdapterPosition() 给出了更新的位置,我正在根据位置从列表中获取值。
谢谢。
【问题讨论】: