gpt4 book ai didi

Android RecyclerView 在垂直滚动后显示加载新内容之前最后加载的图像?

转载 作者:行者123 更新时间:2023-11-30 01:48:40 29 4
gpt4 key购买 nike

我有一个 recyclerview 显示图像列表(从 API 下载)。当我 ScrollView 时,它首先显示最后加载的图像,然后加载新内容。我不想一次又一次地显示最后加载的内容滚动。

@Override
public void onBindViewHolder(ProductItemViewHolder holder, int position) {
ProductItem item = dataSet.get(position);

String url = new ApiCalls(holder.photo.getContext()).getBaseUrl() + item.getImages().getImageUrl().get(0);

//to do


new ImageViewLoader(taskObserver, holder.photo, url)
.setDesiredRatio(1.0f)
.setFallback(R.drawable.img_default_phone)
.load();

String percentage = item.getSalePercentage();
if (percentage != null && !percentage.isEmpty()) {
holder.badge.setVisibility(View.VISIBLE);
holder.badge.setText(percentage);
} else if (item.isNew()) {
holder.badge.setText(holder.badge.getContext().getString(R.string.product_grid_item_badge_new));
} else {
holder.badge.setVisibility(View.GONE);
}

holder.productName.setText(item.getProductName());

String salePrice = item.getSalePrice();
if (salePrice != null && !salePrice.isEmpty()) {
holder.price.setVisibility(View.VISIBLE);
holder.price.setText(formatPrice(item.getCurrency(), item.getPrice()));
holder.price.setPaintFlags(holder.price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

holder.salePrice.setText(formatPrice(item.getCurrency(), salePrice));
holder.salePrice.setTextColor(holder.salePrice.getContext().getResources()
.getColor(R.color.red_100));
} else {
holder.price.setVisibility(View.INVISIBLE);
holder.salePrice.setText(formatPrice(item.getCurrency(), item.getPrice()));
holder.salePrice.setTextColor(holder.salePrice.getContext().getResources()
.getColor(android.R.color.black));
}
}

最佳答案

我不确定你所说的“它首先显示最后加载的图像然后加载新内容”是什么意思,但我有两个猜测:

  1. 由于 onBindViewHolder 的参数通常是一个回收的 View 持有者,它的状态在它滚出 View 时保持不变。这意味着新项目包含回收项目的图像和文本,除非您在 onBindViewHolder 中重新设置它们。

  2. 我们没有看到任何来源的 ImageViewLoader,如果为同一 View 持有者提交新请求,它是否会取消正在进行的请求?您看到的效果可能是旧图像的加载器仍在尝试下载图像,但稍后在项目已被回收时完成。

关于Android RecyclerView 在垂直滚动后显示加载新内容之前最后加载的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33347572/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com