son*_*ain 2 android android-recyclerview
我有RecyclerView,其中每个列表项都有一个ImageButton,我在适配器的onBindViewHolder()中定义了它的图像:
int myVote = getMyVote();
if (myVote != 0) {
Log.d("dbg", myVote + "");
holder.ratingButton.setImageResource(R.drawable.ic_star_grey600_36dp);
}
Run Code Online (Sandbox Code Playgroud)
因此,ratingButton是列表项布局右下角的一颗星.如果满足条件(myVote!= 0),其形状将填充灰色(因此,按下日志记录).
问题是,当我向下滚动列表时,即使我可以在日志窗口中看到唯一的一条记录(对于正确的列表项),我也能看到其他星星被填满.此外,这个带有错误更改按钮的列表项每5行重复一次,这就是令我困惑的事情.如果我改变
mListView.setItemViewCacheSize(0);重复周期变为3,因此我们可以假设它与RecyclerView的缓存和回收机制有某种联系.
请帮我解决问题.谢谢!
别忘了实施
public long getItemId(int position) {}
Run Code Online (Sandbox Code Playgroud)
否则,您将在RecyclerView中看到重复的项目.
尝试将您的代码更改为:
if (myVote != 0) {
Log.d("dbg", myVote + "");
holder.ratingButton.setImageResource(R.drawable.ic_star_grey600_36dp);
} else {
holder.ratingButton.setImageResource(int another resource);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5212 次 |
| 最近记录: |