当我们使用RecyclerView加载网络图片时,如果item里的宽高不是固定的,在网络条件不好或者较卡的手机就会出现加载不全或者不显示的问题,这是因为网络图片属于异步加载,而RecyclerView的宽高在图片加载前就测量好的话就会导致高度不全。
解决方法:只要在图片加载成功回调后让RecyclerView重新测量和布局就可以了,方法requestLayout();
以glide加载图片为例
Glide.with(context).load(url)
.listener(new RequestListener() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) {
recyclerView.requestLayout(); //请求重新 测量宽高和布局
return false;
}
})
.into(imageView);
网友评论