繁体   English   中英

在列表视图中滚动时,图像会被打乱或更改

[英]my images get shuffled or changed when i scroll in list view

当我在列表视图中滚动时,我的图像被打乱或更改。......当我向下滚动并继续更改自己的图像时,图像被打乱……公共类CustomListAdapter扩展了BaseAdapter {

private ArrayList<NewsItem> listData;

private LayoutInflater layoutInflater;

public CustomListAdapter(Context context, ArrayList<NewsItem> listData) {

    this.listData = listData;
    layoutInflater = LayoutInflater.from(context);

}

@Override
public int getCount() {
    return listData.size();
}

@Override
public Object getItem(int position) {
    return listData.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = layoutInflater.inflate(R.layout.activity_list_search, null);
        holder = new ViewHolder();
        holder.headlineView = (TextView) convertView.findViewById(R.id.title);
        holder.reporterNameView = (TextView) convertView.findViewById(R.id.reporter);
        holder.reportedDateView = (TextView) convertView.findViewById(R.id.date);
        holder.imageView = (ImageView) convertView.findViewById(R.id.thumbImage);
        convertView.setTag(holder);

    } else {
        holder = (ViewHolder) convertView.getTag();

    }

    NewsItem newsItem = (NewsItem) listData.get(position);

    holder.headlineView.setText(newsItem.getHeadline());
    holder.reporterNameView.setText("Model: " + newsItem.getReporterName());
    holder.reportedDateView.setText(newsItem.getDate());

    if (holder.imageView != null) {
        new ImageDownloaderTask(holder.imageView).execute(newsItem.getUrl());
    }

    return convertView;

}

static class ViewHolder {
    TextView headlineView;
    TextView reporterNameView;
    TextView reportedDateView;
    ImageView imageView;
}

}

对于新的Android开发人员来说,这个问题非常普遍。

您的ImageDownloaderTask应注意是否仍应将下载的图像发布在屏幕上。

例如,在ImageDownloaderTask完成一个图像下载任务(例如,对于索引15)之后,应确保第15项仍在屏幕上显示。 由于ListView会重用所有项目视图,因此,如果直接将位图设置为原始引用的视图,则您的imageview将被改组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM