Android(安卓)Adapter 异步图片请求诡异问题
16lz
2021-01-26
在开发的时候,在Android Adapter中请求图片。
但是在执行下面代码的时候,总会出现图片请求多次,而且出现position=0的imageView显示的图片与真正的图片有时候不同。
现象非常诡异。
@Override public View getView(final int position, View convertView, ViewGroup parent) { AdapterViewHolder holder = null; if (convertView == null) { holder = new AdapterViewHolder(); convertView = mInflater.inflate(R.layout.group_notification_item, null); holder.tvDescription = (TextView) convertView.findViewById(R.id.tv_group_description); holder.tvName = (TextView) convertView.findViewById(R.id.tv_group_name); holder.ivHeadImage = (ImageView) convertView.findViewById(R.id.iv_headimage); holder.btnAccept = (Button) convertView.findViewById(R.id.accept_btn); holder.btnDeny = (Button) convertView.findViewById(R.id.deny_btn); holder.tvTip = (TextView)convertView.findViewById(R.id.tip_text_tv); convertView.setTag(holder); } else { holder = (AdapterViewHolder) convertView.getTag(); } holder.tvDescription.setText(requester.getMessage()); holder.tvName.setText(requester.getRequesterName()); String imageUrl = requester.getHeadImage(); if (imageUrl != null && !imageUrl.trim().isEmpty()) { new ImageDownloader(mContext, holder.ivHeadImage).executeOnExecutor(DataRequester.execPool, imageUrl);//异步请求图片 } return convertView; } class AdapterViewHolder { TextView tvDescription; TextView tvName; ImageView ivHeadImage; Button btnAccept; Button btnDeny; TextView tvTip; }
原因是每次请求完的时候Listview都会重新调整大小去容纳真实的item的尺寸。这样会导致一些item会重新刷新。重新刷新的时候会再次触发请求。
http://stackoverflow.com/questions/11186004/yet-another-getview-called-multiple-times
更多相关文章
- Android进阶(二)https请求No peer certificate的解决方法.
- 【移动开发】Android相机、相册获取图片显示并保存到SD卡
- GitHub上受欢迎的Android(安卓)UI 库2
- Android之Looper、Handler、Message、MessageQueue应用篇
- android中View的实时刷新
- Android(安卓)图片的读取与写入
- Mac下Android(安卓)Studio简单使用
- android okhttp+解析json( okhttp 工具类)
- android橡皮擦擦图片功能