列表中请求多张图片并加载

最近有人问一个奇怪的问题

示例

就用首页的列表举例子,一个item中有很多图片,或者说又套了一个图片的列表,那么这种效果正常来说本来实现起来没有什么问题,但是数据是这样的:

{
    "pictureIds":[
        1,2,3,4,5
    ]
}

上面的pictureIds是图片的id,这也就意味着,我们需要在列表的item中进行网络请求,这种情况下,因为异步的原因,可能出现图片错乱的问题,当然要想解决这个问题,也是很简单的,kotlin举例子:

class ImageLoadGlide(val context: Context, val imageView: ImageView) {
     fun load(listener: ((String) -> Unit) -> Unit) {                           imageView.setImageDrawable(context.resources.getDrawable(R.drawable.loading_01))                     listener.invoke(::listener)
     }

     fun listener(url: String) {
         imageView.loadRes(url)//Glide加载图片
     }
}

上面代码的意思,相当于创建了一个自定义ImageView,将在图片中进行网络请求,并且加载。

ImageLoadGlide(context, imageView).load {
     //网络异步请求图片
     //成功回调 url为地址
     val url = "http://..." it(url)
}

使用起来就是这样的,相当方便,在load中进行网络图片地址获取,并且通过回调的函数将地址回调回去,这样就解决了遇到的问题了。

你可能感兴趣的:(列表中请求多张图片并加载)