android-从回收站中的Firebase存储中加载图像会显示图像更改

android-从回收站中的Firebase存储中加载图像会显示图像更改,第1张

概述我正在使用recyclerview从火力基地存储中加载图像,但是当我加载说图像A滚动到该图像视图被回收的位置并将用于显示图像B时,在更改为图像之前,我仍然可以短暂地看到图像AB,有办法避免这种情况吗?HereisthecodeformyadapterpublicclassComicRecyclerAdapterextendsRe

我正在使用recyclervIEw从火力基地存储中加载图像,但是当我加载说图像A滚动到该图像视图被回收的位置并将用于显示图像B时,在更改为图像之前,我仍然可以短暂地看到图像A B,

有办法避免这种情况吗?

Here is the code for my adapter

public class ComicRecyclerAdapter extends RecyclerVIEw.Adapter<ComicRecyclerAdapter.ComicHolder> {public ComicRecyclerAdapter(ArrayList<Comic> comicsInSection) {    this.mComicsInSection = comicsInSection;}@OverrIDepublic ComicHolder onCreateVIEwHolder(VIEwGroup parent, int vIEwType) {    //Bind the Comic object to the ComicHolder    VIEw comicVIEw = LayoutInflater.from(parent.getContext())            .inflate(R.layout.layout_grID_comic, parent, false);    return new ComicRecyclerAdapter.ComicHolder(comicVIEw);}@OverrIDepublic voID onBindVIEwHolder(final ComicHolder holder, int position) {    Comic currentComic = mComicsInSection.get(position);    storageRef.child(currentComic.getTitle() + "/"            + currentComic.getCoverImage()).getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {        @OverrIDe        public voID onSuccess(Uri uri) {            //Load image using Picasso            Picasso.get()                    .load(uri)                    .fit()                    .into(holder.coverImage, new Callback() {                        @OverrIDe                        public voID onSuccess() {                            //image loaded stop loading icon                            holder.loadingComic.setVisibility(VIEw.GONE);                        }                        @OverrIDe                        public voID one rror(Exception e) {                        }                    });        }    });}@OverrIDepublic int getItemCount() {    return (null != mComicsInSection ? mComicsInSection.size() : 0);}public voID addAll(ArrayList<Comic> comicsToAdd) {    mComicsInSection.addAll(comicsToAdd);    notifyDataSetChanged();}public voID clear() {    mComicsInSection.clear();    notifyDataSetChanged();}static class ComicHolder extends RecyclerVIEw.VIEwHolder {    //Find all vIEws needed    @BindVIEw(R.ID.comic_cover_image)    ImageVIEw coverImage;    @BindVIEw(R.ID.loading_comic)    Progressbar loadingComic;    public ComicHolder(VIEw itemVIEw) {        super(itemVIEw);        ButterKnife.bind(this, itemVIEw);    }}

}

解决方法:

我建议您先获取图像URL列表,然后转到适配器并仅使用Picasso加载它.现在发生的情况是,当滚动回收器视图时,您可能会首先获得第3个位置的URL,而不是第1个位置的URL,这可能会导致您产生意外的结果.

总结

以上是内存溢出为你收集整理的android-从回收站中的Firebase存储中加载图像会显示图像更改全部内容,希望文章能够帮你解决android-从回收站中的Firebase存储中加载图像会显示图像更改所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1081496.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存