Tôi có vấn đề này - chỉ cho mục đích thử nghiệm tôi đã thêm ParseFile
vào một trong số ParseObject
từ danh sách nhận được. Thay vì chỉ hiển thị nó trong hàng đó, nó cho thấy mỗi 4-5 hàng, đôi khi nhiều hơn, đôi khi ít hơn. Tôi cho rằng chế độ xem tái chế có liên quan đến việc này. Kỳ lạ, các dữ liệu khác (bị xóa khỏi ví dụ này) hoạt động tốt với biến số position
.Recyclerview Adapter và Glide - cùng một hình ảnh 4-5 hàng
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if(parseList.get(position).get("logo") != null){
ParseFile image = (ParseFile) parseList.get(position).get("logo");
String url = image.getUrl();
Glide.with(context)
.load(url)
.placeholder(R.drawable.piwo_48)
.transform(new CircleTransform(context))
.into(holder.imageView);
}
}
Bạn có thể giải thích thêm về điều đó không? Câu trả lời trước đây đang hoạt động tốt, nhưng tôi tưởng tượng phương thức 'clear() 'không được thực hiện chỉ từ không khí mỏng. –
Chúng hầu như chỉ hoạt động. Nếu bạn gọi onBindViewHolder và bắt đầu tải cho vị trí có biểu trưng cho một chế độ xem nhất định, sau đó gọi lại onBindViewHolder với cùng ViewHolder trước khi tải xong, bạn sẽ thấy hình ảnh cũ thay vì chế độ xem trống. Điều kiện chủng tộc này ít phổ biến hơn lỗi trước của bạn, nhưng vẫn có thể. –
Ngoài ra tôi nên làm rõ tôi đã viết thư viện và phương thức clear(). Trường hợp sử dụng này ở đây là một ví dụ tuyệt vời về lý do tại sao phương thức clear() tồn tại :). Bạn phải luôn bắt đầu tải mới (hủy tải cũ cho bạn) hoặc tự hủy tải khi bạn đang sử dụng lại chế độ xem. –