【发布时间】:2016-07-19 12:45:58
【问题描述】:
我有一个基本上多合一的布局,其中包含我的应用程序主要提要所需的一切。所有变量项(图片、视频缩略图等)一开始都设置为GONE,需要时设置为VISIBLE。
问题是有时,可能是由于RecyclerView的回收行为,应该是GONE的项目在错误的地方是VISIBLE。
例子:
第 1 项包含文本
第 2 项包含图片
第 3 项包含图片
我一直向下滚动到第 x 项,然后向上滚动,这就是我得到的:
第 1 项包含第 x 项的图像,有时包含第 3 项的图像
第 2 项包含图片
第 3 项包含图片
我正在使用 extends RecyclerView.ViewHolder 的自定义 ViewHolder。
CustomViewHolder 的用途是布局声明和初始化。
ProgressBar progressBar;
View viewDimmer;
RelativeLayout postListWrapper;
...
public ObjectViewHolder(View v) {
super(v);
progressBar = (ProgressBar)v.findViewById(R.id.post_inscroll_progressBar);
viewDimmer = (View)v.findViewById(R.id.post_inscroll_viewDimmer);
postListWrapper = (RelativeLayout)v.findViewById(R.id.post_inscroll_postListWrapper);
}
我如何加载图像的示例:
Picasso.with(context)
.load(youtubeThumbnailUrl)
.fit()
.centerCrop()
.into(
((ObjectViewHolder) holder).userPostYoutubeImage
);
如果没有从服务器获取 url,我将每个可见性设置为 GONE
((ObjectViewHolder) holder).userPostImageWrapper.setVisibility(View.GONE);
((ObjectViewHolder) holder).userPostYoutubeImageWrapper.setVisibility(View.GONE);
但不知何故,图像仍然在以前的项目上重复使用(是的,不仅仅是第 1 项)。有时图像也是错误的ImageView。图像 D 应该在 ImageView D 中,但它却在 ImageView A 中。
任何设置RecyclerView 并顺利进行的指南?
如果我遗漏了什么,或者需要提供更多代码,请告诉我:D
【问题讨论】:
标签: java android android-recyclerview android-view visibility