gpt4 book ai didi

android - ListView Adapter 图片加载位置错误

转载 作者:行者123 更新时间:2023-11-29 21:12:31 28 4
gpt4 key购买 nike

这很奇怪,当我慢速或中速滚动时一切正常,但当我滚动得非常快时,有时 (1/5) 图片加载到错误的位置。

View mView;
ViewHolder holder;

if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mView = inflater.inflate(R.layout.item_suggested_user, parent, false);
holder = new ViewHolder();

holder.circleImage = (CircleImageView) mView.findViewById(R.id.circle_image);
holder.fullName = (TextView) mView.findViewById(R.id.item_suggested_fullname);
holder.img1 = (SmartImageView) mView.findViewById(R.id.item_suggested_img1);


mView.setTag(holder);

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


final SuggestedUsersModel item = (SuggestedUsersModel) getItem(position);
holder.fullName.setText(mList.get(position).getFullname());

if (item.getProfilepictureurl() != null) {
Picasso.with(mContext)
.load(item.getProfilepictureurl().replaceAll(" ", "%20"))
.placeholder(R.drawable.ic_contact)
.error(android.R.drawable.ic_dialog_alert)
.into(holder.circleImage);
} else {
holder.circleImage.setImageResource(R.drawable.ic_contact);
}

String type = item.getPosts().get(0).getMediatype();
//For Image 1
if (type.equalsIgnoreCase("text")) {
holder.img1.setImageResource(R.drawable.text_post_background);
} else if (type.equalsIgnoreCase("image")) {
if (item.getPosts().get(0).getUri() != null) {

Picasso.with(mContext)
.load(item.getPosts().get(0).getUri().replaceAll(" ", "%20"))
.placeholder(R.drawable.ic_contact)
.error(android.R.drawable.ic_dialog_alert)
.into(holder.img1);
} else {
holder.img1.setImageResource(R.drawable.ic_contact);
}
} else {
if (item.getPosts().get(0).getThumbnailuri() != null) {
Picasso.with(mContext)
.load(item.getPosts().get(0).getThumbnailuri().replaceAll(" ", "%20"))
.placeholder(R.drawable.ic_contact)
.error(android.R.drawable.ic_dialog_alert)
.into(holder.img1);
} else {
holder.img1.setImageResource(R.drawable.ic_contact);
}
}

我正在使用 Picasso ,但我尝试了几乎所有的方法,结果都是一样的。我已经知道 listview 是如何工作的以及所有对项目的重用,但是我无法解释为什么会这样。

请给我一些想法和解决方案。谢谢

更新 1:我添加了按钮,并在点击时更改了文本,所以这里再次发生相同的情况(当滚动按钮在其他位置混淆时),所以我不是用于加载图片的库。有人可以帮忙吗。

最佳答案

不要对 convertView 使用 if-else 条件。

随便说说,

LayoutInflater inflater = (LayoutInflater)   mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mView = inflater.inflate(R.layout.item_suggested_user, parent, false);
holder = new ViewHolder();

holder.circleImage = (CircleImageView) mView.findViewById(R.id.circle_image);
holder.fullName = (TextView) mView.findViewById(R.id.item_suggested_fullname);
holder.img1 = (SmartImageView) mView.findViewById(R.id.item_suggested_img1);

让我知道发生了什么..

关于android - ListView Adapter 图片加载位置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22373388/

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