毕加索没有将一些图像加载到RecyclerView

时间:2017-05-04 21:44:00

标签: android android-recyclerview picasso

我有一个垂直的RecyclerView,其中包含Picasso加载的图像。我需要图像宽度为“match_parent”,高度为“75dp”。在我的Adaper的方法onBindViewHolder()我写道:

holder.vImage.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        Picasso.with(context)
            .load(party.getImageRectangleURL())
            .placeholder(context.getResources().getDrawable(R.mipmap.ic_launcher))
            .error(context.getResources().getDrawable(R.mipmap.ic_launcher))
            .resize(holder.vImage.getWidth(), holder.vImage.getHeight())
            .centerCrop()
            .into(holder.vImage);
        }
    });

我现在遇到问题:

想象一下,我有12个元素。其中10个在创建活动时可见,2个在用户向下滚动之前不可见。 Picasso仅加载前10个图像,当用户向下滚动时,最后2个项目将替换为占位符。但!如果用户在活动加载后立即向下滚动,则也会加载最后2张图像。

我在网上读到,如果高度或宽度等于0,Picasso甚至不会尝试加载图像。也许我有这个问题,因为最后2个元素不可见,所以RecyclerView不会创建它们。

当滚动后元素变得可见时,我可以做些什么来强制Picasso加载文件。 (欢迎任何其他想法)

0 个答案:

没有答案
相关问题