使用Picasso将第二次Volley JSON请求加载到RecyclerView后加载图像?

时间:2017-03-19 04:50:34

标签: android json android-recyclerview android-volley soundcloud

我正在使用Soundcloud API并将搜索结果显示到我创建的RecyclerView中。在我的RecyclerView中,每个元素都在cardView中,其中包含用于搜索结果标题的textView和用于结果的图像/专辑封面的imageView。 Soundcloud API的工作方式是,当您搜索某些内容时,它将为您提供所有搜索结果的曲目ID,标题和其他信息。但是,它不包括搜索结果响应中的专辑封面URL。为了获得搜索结果的专辑封面,我必须为使用轨道ID从主JSON请求返回的每个搜索结果创建单独的JSON请求。我对如何以及何时通过Volley请求辅助JSON感到困惑。

目前,我使用RecyclerView Adapter类的onBindViewHolder方法发出辅助请求。这确实有效,但是这个实现中存在的一个小问题是,当我在屏幕上向下滚动一对结果并立即向上滚动时,一些图像被错放并被放入错误的元素中并且正确的图像占用加载回来几秒钟。这是因为图像被回收,只有在需要渲染或重新渲染RecyclerView的元素时才调用onBindViewHolder方法。那么,有没有人能够解决我何时可以为专辑艺术制作次要JSON请求?

1 个答案:

答案 0 :(得分:2)

您可以使用ListView而不是RecyclerView。这样你的细胞就不会被回收,而且你不必担心每个细胞都被破坏了。权衡是你没有RecyclerView的表现,但在这种情况下可能是值得的。