Android Ion-图像无法加载到recyclerview中

Android Ion-图像无法加载到recyclerview中,android,android-recyclerview,ion,Android,Android Recyclerview,Ion,我一直在为这只虫子担心,因为它不能完全复制。我有一个自定义的回收器适配器,它从数据库加载值。它调用网络助手类来构建URL并使用Ion加载图像。这个bug似乎不受滚动速度的影响,但我认为它可能受一次对服务器进行的图像调用量的影响 public ThreadAdapter(Cursor cursor) { super(cursor); } @Override public void onBindViewHolderCursor(RecyclerView.ViewHolder holder

我一直在为这只虫子担心,因为它不能完全复制。我有一个自定义的回收器适配器,它从数据库加载值。它调用网络助手类来构建URL并使用Ion加载图像。这个bug似乎不受滚动速度的影响,但我认为它可能受一次对服务器进行的图像调用量的影响

 public ThreadAdapter(Cursor cursor) {
    super(cursor);
}

@Override
public void onBindViewHolderCursor(RecyclerView.ViewHolder holder, Cursor cursor) {
    ThreadViewHolder threadViewHolder = (ThreadViewHolder)holder;

    networkHelper.getImage(threadViewHolder.image,
            cursor.getString(cursor.getColumnIndex(DbContract.ThreadEntry.COLUMN_THREAD_IMAGE_NAME),
            cursor.getString(cursor.getColumnIndex(DbContract.ThreadEntry.COLUMN_THREAD_IMAGE_EXTENSION))
    );
}


@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = inflater.from(parent.getContext()).inflate(R.layout.card_thread, parent, false);
    ThreadViewHolder viewHolder = new ThreadViewHolder(view);
    return viewHolder;
}

class ThreadViewHolder extends RecyclerView.ViewHolder{
    public ImageView image;

    public ThreadViewHolder(View itemView) {
        super(itemView);
        image = (ImageView) itemView.findViewById(R.id.thread_image);
    }

}


它似乎正在正确地构建URL,并且仅在需要调用某些内容时才调用Ion。我有时会看到占位符图像出现,然后消失。我从来没有见过错误图像出现在所有。我认为,如果项目A、项目B和项目C都有需要加载的图像,并且都同时出现,则加载失败的可能性更大。

为什么不改用毕加索?除了必须实现两个库来增加我的应用程序大小之外,没有什么主要原因,我希望避免这种情况。我决定使用Ion,因为它被宣传将我的许多网络调用统一到一个框架中。
public void getImage(ImageView imageView, String name, String extension){
    if (name != null && extension != null){
        String imageUrl = "example.com/" + name + extension;

        Log.d(LOG_TAG, "Image Url " + imageUrl);
        Ion.with(imageView)
                .fitCenter()
                .placeholder(R.drawable.ic_launcher)
                .error(R.drawable.error)
                .load(imageUrl);
    }else {
        imageView.setImageBitmap(null);
    }
}