gpt4 book ai didi

android - Glide v4 RecyclerView 预加载图像不显示

转载 作者:行者123 更新时间:2023-11-29 23:16:18 26 4
gpt4 key购买 nike

我已经开始在我现有的项目中实现 Glide,并且一直在阅读文档和示例。我检查了 Flickr 的示例应用程序,并尝试像它一样预加载图像。

我正在 fragment 中初始化 GlideRequest,然后将其传递给适配器以预加载图像和显示。但是当我运行我的应用程序时,我既没有收到任何错误也没有显示任何图像。我对示例应用程序中的代码进行了轻微修改,因为我不需要任何模型加载器。

这是我在 fragment 中的初始化:

private GlideRequests instructorRequestBuilder;
instructorRequestBuilder = GlideApp.with(this);

我把它赋值给

preloadRequest

适配器构造函数中的变量。

bindViewHolder 的代码如下:

  private void setImage(final String image, final ImageView imageView)
{
preloadRequest.load(image)
.centerCrop()
.placeholder(R.drawable.placeholder_explore_user)
.error(R.mipmap.ic_launcher)
.listener(new RequestListener<Drawable>()
{
@Override public boolean onLoadFailed(@Nullable GlideException e, Object model,
Target<Drawable> target, boolean isFirstResource)
{
Log.d(TAG, "onLoadFailed: " + e);
return false;
}

@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target,
DataSource dataSource, boolean isFirstResource)
{
Log.d(TAG, "onLoadFailed: " + isFirstResource);
Log.d(TAG, "onLoadFailed: " + dataSource);
return false;
}
})
.into(imageView);
}

我的适配器实现

ListPreloader.PreloadModelProvider

这是实现方法的代码:

  @NonNull @Override public List<IConnectType> getPreloadItems(int position)
{
return iConnectInstructors.subList(position, position + 1);
}

@Nullable @Override
public RequestBuilder<Drawable> getPreloadRequestBuilder(@NonNull IConnectType item)
{
return preloadRequest.load(((User) item)
.getProfileImage250())
.placeholder(R.drawable.placeholder_explore_user)
.centerCrop()
.error(R.mipmap.ic_launcher);
}

PreloadSize 和 PreLoader 初始化如下:

ViewPreloadSizeProvider<IConnectType> preloadSizeProvider = new ViewPreloadSizeProvider<>();
RecyclerViewPreloader<IConnectType> preloader = new RecyclerViewPreloader<IConnectType>(
GlideApp.with(this), adapter,
preloadSizeProvider, 6);
rvInstructor.addOnScrollListener(preloader);
rvInstructor.setItemViewCacheSize(0);

为什么在回收站 View 中没有显示任何项目?

最佳答案

这是在 viewholder 中指定的图像大小的问题。由于未加载图像, View 持有者指定了 match_parent 的宽度和高度。甚至请求监听器都失败了,然后我尝试使用 submit()(如建议的 here )然后意识到资源已加载但在 View 中加载它们失败。

关于android - Glide v4 RecyclerView 预加载图像不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55300767/

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