【发布时间】:2018-01-09 14:19:31
【问题描述】:
我有一个 RecyclerView,它从 ViewHolder 加载以下内容。
public class ViewHolder extends RecyclerView.ViewHolder {
public ImageView imagePreviewOfEvent;
...(other views)
public ViewHolder(View itemView) {
super(itemView);
imagePreviewOfEvent = (ImageView) itemView.findViewById(R.id.listOfTimelinePostsPhotoContainer);
...(other views)
}
}
我正在使用来自 JSON 请求的数据填充此 RecyclerView。数据中充满了帖子列表。有些帖子会有图片,但有些则没有(几乎就像 Twitter/Facebook 时间线,帖子可能有/可能没有照片)。
如果没有图像,则 JSON 返回“null”。在我的 RecyclerView 上,我想基于此从列表中的每一行中删除一个 ImageView。我尝试通过检查我存储的布尔状态来简单地删除视图:
if (timelineListInformation.getNeedsToRemoveImageView() == true) {
holder.imagePreviewOfEvent.setVisibility(View.GONE);
}
当我向下滚动列表并向上滚动时,与图像相关联的帖子将被删除。我一直在尝试查看各种答案,但没有找到任何答案。有什么想法吗?
【问题讨论】:
-
你使用了timelineListInformation.get(position).getNeedsToRemoveImageView() 应该有这样的东西
-
放置一个 else 块并将可见性设置为 VISIBLE。由于您的视图被回收,一旦您在该视图实例中隐藏 imageview,它就会一直隐藏,直到您再次使其可见。
-
感谢大家的回复。 JudgedPluto 的答案非常完美!但是……这是最有效的方法吗?我不只是完成工作,而是试图了解最好的方法。如果是,那很好,如果不是,那我还能做什么?
标签: android json listview android-recyclerview