我基本上都在一個佈局,其中有我的應用程序的主要飼料所需的一切。所有可變項目(圖像,視頻縮略圖等)首先設置爲GONE
,當需要時設置爲VISIBLE
。Android - RecyclerView與一個佈局,多setVisibility
問題有時可能是由於RecyclerView
的回收行爲,應該是GONE
的項目是VISIBLE
錯誤的地方。
實施例:
貨號1包含文本
貨號2包含圖像
貨號3包含圖片
我不斷向下滾動項的NO x,然後向上滾動,這裏是我得到的:
貨號1包含圖像從項目的NO x,有時沒有項目3
貨號2包含圖像
貨號3包含圖片
我使用的自定義ViewHolder其中extends RecyclerView.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
);
我已經設置每個能見度GONE
如果從服務器
((ObjectViewHolder) holder).userPostImageWrapper.setVisibility(View.GONE);
((ObjectViewHolder) holder).userPostYoutubeImageWrapper.setVisibility(View.GONE);
沒有獲得URL但不知何故,圖像仍然在以前的項目上重複使用(是的,不僅是產品編號1)。有時圖片也出錯了ImageView
。圖像D應該在ImageView
D中,但它代替ImageView
A.
任何設置RecyclerView
的指南都很好嗎?
如果我錯過了什麼,或者需要提供更多的代碼,請你告訴我:d
這可能值得說明爲什麼這很重要。原因是持有人被重複使用。 – Knossos
我只是被打了一巴掌。謝謝Reaz告訴我使用其他方式,謝謝@Knossos告訴我持有者已被重用!因此,即使我們移動到1號持有人,持有人號碼3內的可見性仍然存在。 –
@Knossos非常感謝您的補充。是的,這是值得分享的。 –