Glide无法从服务器重新加载图像

时间:2020-07-31 13:17:41

标签: android-glide

我有一个显示照片的回收站视图。

这是我的适配器:

public class CustomerImageListAdapter extends RecyclerView.Adapter<CustomerImageListAdapter.Holder> {
private Context context;
private List<String> imageUrls;

public CustomerImageListAdapter(Context context, List<String> imageUrls) {
    this.context = context;
    this.imageUrls = imageUrls;
}

@NonNull
@Override
public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View rootview = LayoutInflater.from(context).inflate(R.layout.customer_onitemclick_image_viewpager_item, parent, false);

    return new Holder(rootview);
}

@Override
public void onBindViewHolder(@NonNull Holder holder, int position) {
    Glide.with(context).load(imageUrls.get(position)).into(holder.imageView);

    if (imageUrls.size() != 0) {
        for (int i = 0; i < imageUrls.size(); i++) {
            Log.i("urls", "onBindViewHolder: " + imageUrls.get(i));
        }
    }


}

@Override
public int getItemCount() {
    return imageUrls.size();
}

class Holder extends RecyclerView.ViewHolder {

    ImageView imageView;

    public Holder(@NonNull View itemView) {
        super(itemView);
        imageView = itemView.findViewById(R.id.customer_onitemclick_image_viewpager_item_imageview);
    }
}

public void setImageUrls(List<String> imageUrls1) {
    imageUrls.addAll(imageUrls1);
    notifyDataSetChanged();
}

}

当我在构造函数中设置“ imageurls”时,recyclerview会完美显示图像;

imageListAdapter = new CustomerImageListAdapter(getContext(),urls);

但是当我在构造函数“ new ArrayList()”中设置并使用“ setImagesUrls”方法更新“ imageurls”时, 然后recyclerview不显示图像。

imageListAdapter = new CustomerImageListAdapter(getContext(),new ArrayList<String>());

 ...
  ...
 ...

 @Override{
        public void onChanged(List<String> strings) 

            imageListAdapter.setImageUrls(strings);

        }

基于“日志”,从服务器接收图像的地址。

    @Override
    public void onBindViewHolder(@NonNull Holder holder, int position)
     {
     Glide.with(context).load(imageUrls.get(position)).into(holder.imageView);

     if (imageUrls.size() != 0) {
     for (int i = 0; i < imageUrls.size(); i++) {
        Log.i("urls", "onBindViewHolder: " + imageUrls.get(i));
     }
}

}

感谢您的帮助

0 个答案:

没有答案