【问题标题】:ImageView Duplication of dynamically created imageview occured on Refreshing the layout on recyclerviewImageView 在刷新 recyclerview 上的布局时发生动态创建的 imageview 重复
【发布时间】:2020-06-12 18:56:57
【问题描述】:

我在 Recyclerview 中有不同的视图,其中之一是多图像视图。多图像视图不过是水平滚动视图下的线性布局,包含动态创建的图像视图。使用滑行加载图像。它在第一次加载时工作正常。但是当 Recycler 视图被刷新时,之前的帖子中出现了重复的图像。我也使用了 Glide Clear 方法,但它也不起作用。

这是OnBindViewHolder 方法:

{
    if (!(viewHolder is AdapterHolders.PostMultiImagesViewHolder holder))
        return;

    if (item.PostData.PhotoMulti?.Count > 4 || item.PostData.PhotoAlbum?.Count > 4)
    {

            var imagesList = item.PostData.PhotoMulti ?? item.PostData.PhotoAlbum;

        foreach ( var img in imagesList)
        {
            ImageView imageView = new ImageView(holder.ItemView.Context);

            imageView.SetPadding(2, 2, 2, 2);

            imageView.SetOnClickListener(holder);
            holder.layout.AddView(imageView);
            FullGlideRequestBuilder.Load(img.Image).Placeholder(Resource.Drawable.ImagePlacholder).FitCenter().Error(Resource.Drawable.ImagePlacholder).Into(imageView);
            ImageViewList.Add(imageView);
        }
    }

    break;

这是OnCreateViewHolder 方法:

case (int)PostModelType.MultiImages:
{
   itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.Post_Content_MultiImages_Layout, parent, false);
   var vh = new AdapterHolders.PostMultiImagesViewHolder(itemView, this, PostClickListener);
   Console.WriteLine("WoLog: NativePostAdapter / OnCreateViewHolder  >> " + (JavaSystem.CurrentTimeMillis() - startTime)  + " PostModelType = MultiImages" + viewType);
   return vh;
} 

这是OnViewRecycled 方法:

else if (holder is AdapterHolders.PostMultiImagesViewHolder viewHolder12)
{
    foreach (ImageView img in ImageViewList)
    {
        //viewHolder12.layout.GetChildAt(img.Id);
        Glide.With(ActivityContext).Clear(img);
    }  
}

【问题讨论】:

    标签: android xamarin.android


    【解决方案1】:

    致电ImageViewList.clear();

    ImageViewList.Add(imageView);之前

    告诉我它是否有效

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-14
      • 2016-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      相关资源
      最近更新 更多