gpt4 book ai didi

java - ListView 中的图像从行跳转到行

转载 作者:行者123 更新时间:2023-12-01 13:24:55 27 4
gpt4 key购买 nike

我正在使用带有图像的ListView,我也有一个图像加载器。问题是,当快速滚动时,图像会出现在错误的行上,在滚动停止后不久,所有内容都会恢复原位。

这是我的适配器:

public class MyAdapter extends ArrayAdapter<MyObj> 
{
int layoutResourceId;
List<MyObj> data;
Activity activity;
int rowViewId;

public MyAdapter(Activity activity, int layoutResourceId, List<MyObj> data)
{
super(activity, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.activity = activity;
this.data = data;
rowViewId = R.layout.my_layout.xml;
}

public static class ViewHolder
{
public TextView title;
public ImageView image;
}

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View row = convertView;
ViewHolder holder;


if (row == null)
{
LayoutInflater layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

row = layoutInflater.inflate(rowViewId, null);
holder = new ViewHolder();
holder.title = (TextView) row.findViewById(R.id.title);
holder.image = (ImageView) row.findViewById(R.id.image);
row.setTag(holder);
}
else
{
holder = (ViewHolder) row.getTag();
}

final MyObj obj = data.get(position);

if (event != null)
{
holder.title.setText(event.getTitle());
ImageLoader imageLoader = new ImageLoader();
imageLoader.loadImageFromAppServer(obj.getImageName(), holder.image);
}

return row;
}
}

我可以采取什么措施来防止这种不良行为?

最佳答案

您的图像正在由 loadImageFromAppServer 异步加载。当它从服务器到达时,您的 holder.image 对象已被另一行重用,该行并不代表与您请求 ImageLoader 对象下载时相同的数据图片。您需要实现一种方法来告诉 ImageLoader 对象取消之前的下载请求。

关于java - ListView 中的图像从行跳转到行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21839955/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com