android - Android RecyclerView setVisibility 无法正常工作
问题描述
我有包含用户书签的 RecyclerView。计划已加入书签的项目将标有特定图标。这是我在 onBindViewHolder() 中的代码:
// ...
if (bookmarks != null) {
for (BookmarkModel bookmarkData : bookmarks) {
if (bookmarkData.getLetterId() == letter && bookmarkData.getEntryId() == entry) {
holder.imgBookmark.setVisibility(View.VISIBLE);
} else {
holder.imgBookmark.setVisibility(View.INVISIBLE);
}
}
}
但是,RecyclerView 并未显示所有书签图标,仅显示其中的几个。目前我有 3 个书签,但它只显示其中 1 个。我已经对其进行了调试并验证了 holder.imgBookmark.setVisibility(View.VISIBLE) 已被调用 3 次。如何正确更新图像?
解决方案
当字母和条目匹配时,我忘记了休息。因此,只有最后一场比赛才会显示图标。
if (bookmarks != null) {
for (BookmarkModel bookmarkData : bookmarks) {
if (bookmarkData.getLetterId() == letter && bookmarkData.getEntryId() == entry) {
holder.imgBookmark.setVisibility(View.VISIBLE);
break;
} else {
holder.imgBookmark.setVisibility(View.INVISIBLE);
}
}
}