我有一个包含30行数据的RecyclerView。一些行有我得到的图像并用毕加索显示它。 问题是,图像框每8行重复一次,即使该行没有图像。 我检查如果图像为空则不显示,但显示它。
JobAdapter.java
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
final MyHolder myHolder = (MyHolder) holder;
JobClass current=data.get(position);
myHolder.name.setText(current.title);
myHolder.manager.setText(current.manager);
String phone= (String) new KerashDao(context).JobinfoGetValue(current.job_id.toString(),new KerashDao(context).SettingGetValue("phone").toString());
myHolder.phonecall.setText(phone.toString());
try {
if(!current.image.isEmpty()) {
Picasso.with(context)
.load(current.image)
.placeholder(R.drawable.icn_loading)
.into(myHolder.picture, new Callback() {
@Override
public void onSuccess() {myHolder.picture.setVisibility(View.VISIBLE);}
@Override
public void onError() {
myHolder.picture.setVisibility(View.GONE);
}
});
}
}catch (Exception ex){Log.i("JobAdapter2",ex.getMessage().toString()+"");}
}
答案 0 :(得分:0)
RecyclerView
回收代表每一行的视图。这意味着一旦滚动离开屏幕,给定视图将被另一行重用。由于您在某个时刻将图像加载到该视图中,因此它会一直存在,直到您清除它为止。
在您的else
语句中添加if(!current.image.isEmpty())
条款,清除ImageView
中的图片。