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

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

示例

就用简书首页的列表举例子,一个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中进行网络图片地址获取,并且通过回调的函数将地址回调回去,这样就解决了遇到的问题了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容