我有一个看起来像这样的 RecyclerView 适配器:
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {
private static Context context;
private List<Message> mDataset;
public RecyclerAdapter(Context context, List<Message> myDataset) {
this.context = context;
this.mDataset = myDataset;
}
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnCreateContextMenuListener, View.OnClickListener {
public TextView title;
public LinearLayout placeholder;
public ViewHolder(View view) {
super(view);
view.setOnCreateContextMenuListener(this);
title = (TextView) view.findViewById(R.id.title);
placeholder = (LinearLayout) view.findViewById(R.id.placeholder);
}
}
@Override
public RecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.message_layout, parent, false);
ViewHolder vh = new ViewHolder((LinearLayout) view);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Message item = mDataset.get(position);
holder.title.setText(item.getTitle());
int numImages = item.getImages().size();
if (numImages > 0) {
View test = LayoutInflater.from(holder.placeholder.getContext()).inflate(R.layout.images, holder.placeholder, false);
ImageView image = (ImageView) test.findViewById(R.id.image);
Glide.with(context)
.load("http://www.website.com/test.png")
.fitCenter()
.into(image);
holder.placeholder.addView(test);
}
}
@Override
public int getItemCount() {
return mDataset.size();
}
}
但是,RecyclerView 中的某些项目在不应该显示的情况下显示图像。我怎样才能阻止这种情况发生?
我在 onBindViewHolder()
中检查了 if (numImages > 0) {
,但这仍然没有阻止它显示不应该有图像的项目的图像.
最佳答案
你应该设置imageView.setImageDrawable (null)
在 onBindViewHolder()
中使用 glide 设置图像之前。
将 image drawable 设置为 null 解决了这个问题。
希望对您有所帮助!
关于android - RecyclerView 适配器显示错误的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33835867/