ile kullanırken Picasso görüntü yanlış konumlandırma sorunu Uygulamamda, bir web servisinden getirilen makaleleri gösteriyorum. Bu makaleler başlık, resim ve diğer alanlara sahiptir. Görüntüleri görüntülemek için Picasso kullanıyorum.RecyclerView
Sorun - RecyclerView öğesini kaydırırken, görüntülerin yanlış yerleştirildiğini görüyorum. Bazı öğeler çift görüntülere sahip. Xml madde düzenini yeniden kullanan RecyclerView olduğunu biliyorum ve bunun nedeni bir sorun yaratıyor. Ama bence bu soruna bir çözüm olmalı. Ben bu konuda googled ve stackoverflow üzerinde bazı mesajlar buldum ama bu yardımcı olmadı. Herhangi bir yardım mutluluk duyacağız
<ImageView
android:id="@+id/img_image"
android:layout_width="match_parent"
android:layout_height="@dimen/cardview_image_thumbnail_height"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:scaleType="centerCrop"
android:layout_margin="@dimen/cardview_padding_btw_widgets"
android:src="@drawable/noimage"
/>
benim düzen dosyasının Part - örnek-
Picasso loads pictures to the wrong imageview in a list adapter
için aşağıdaki fakat aynı problem
public class ArticleAdapter extends RecyclerView.Adapter<ArticleAdapter.ArticleViewHolder> {
protected Activity mActivity;
protected List<Article> mItems = new ArrayList<>();
private static OnEntityClickCallback mCallback;
public ArticleAdapter(Activity pActivity) {
mActivity = pActivity;
}
public void setItemClickCallback(OnEntityClickCallback pCallback) {
this.mCallback = pCallback;
}
@Override
public ArticleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View articleView = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_article_item, parent, false);
return new ArticleViewHolder(articleView);
}
public void addItem(List<Article> moreItems) {
mItems.addAll(moreItems);
notifyDataSetChanged();
}
public void removeItems(){
mItems.clear();
notifyDataSetChanged();
}
@Override
public void onBindViewHolder(ArticleViewHolder holder, int position) {
holder.bind(mItems.get(position));
}
@Override
public int getItemCount() {
return mItems.size();
}
static class ArticleViewHolder extends RecyclerView.ViewHolder {
private TextView tvTitle;
TextView tvAuthor;
TextView tvPostdate;
ImageView imgImage;
RatingBar ratingBar;
public ArticleViewHolder(View view) {
super(view);
this.tvTitle = (TextView) view.findViewById(R.id.tv_title);
this.tvAuthor = (TextView) view.findViewById(R.id.tv_author);
this.tvPostdate = (TextView) view.findViewById(R.id.tv_date);
this.imgImage = (ImageView) view.findViewById(R.id.img_image);
this.ratingBar = (RatingBar) view.findViewById(R.id.ratingBar);
}
public void bind(final Article article) {
tvTitle.setText(article.getTitle());
tvPostdate.setText(article.getPostdate());
tvAuthor.setText(article.getAuthor());
// Canceling the older request
Picasso.with(imgImage.getContext()).cancelRequest(imgImage);
// Creating a new request.
if (article.getImage() != null) {
Picasso.with(imgImage.getContext()).load(article.getImageUrl())
.placeholder(R.drawable.noimage)
.error(R.drawable.noimage)
.into(imgImage);
}
this.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mCallback != null)
mCallback.onEntitySelected(article);
}
});
}
}
}
Güncelleme sahip denedim . Teşekkür ederim.
Sadece resimler gibi null ise bir yedeği sağlayabilir? – Soham
@Soham Sadece görüntüler yanlış yerleştiriliyor. –
Adaptör sınıfınızı gönderir misiniz? – Soham