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

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