我在SimpleDraweeView
项目中使用了ListView
。如果标题网址不为空,它将显示网络中的图像,或者它将显示本地可绘制的默认图像。
代码如下:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.info_contact_item,null);
holder.ivHeader = findViewById(convertView, R.id.iv_header);
holder.setTag(holder);
} else {
holder = (BaseViewHolder) convertView.getTag();
}
final String url = data.get(position).get("headerUrl");
if (StringUtil.isNull(url)){
holder .ivHeader.setBackgroundResource(R.drawable.default_head_icon);
}else{
ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri))
.setAutoRotateEnabled(true)
.setLocalThumbnailPreviewsEnabled(true) //
.setProgressiveRenderingEnabled(true) //
.build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(imageRequest)
.setOldController(simpleDraweeView.getController())
.setAutoPlayAnimations(true)
.build();
holder.ivHeader.setController(controller);
}
return convertView;
}
当我将ListView
滚动到最后时,SimpleDraweeView
显示与上一屏幕图像数据相同的图像。有人有同样的问题吗?
答案 0 :(得分:0)
请参阅this代码,如果您希望更新ListView
数据,请不要忘记致电notifydatasetchanged()
,这将取消ListView
中的更改。
我希望这会有所帮助:)