ListView项目显示中的SimpleDraweeView错误

时间:2015-12-24 09:11:39

标签: android listview android-listview fresco

我在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显示与上一屏幕图像数据相同的图像。有人有同样的问题吗?

1 个答案:

答案 0 :(得分:0)

请参阅this代码,如果您希望更新ListView数据,请不要忘记致电notifydatasetchanged(),这将取消ListView中的更改。

我希望这会有所帮助:)