У меня есть ListView, который имеет нечетный визуальный глюк при прокрутке:ListView прокрутки UI глюк
После прокрутки:
Это происходит периодически, и у меня нет хороший способ воспроизвести это, кроме закрытия моего приложения, и начать прокрутку списка. Любые идеи о том, что происходит?
Вот некоторые (возможно) соответствующий код из моего arrayAdapter я использую для этого ListView:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// If we weren't given a view, inflate one
ViewHolder holder;
if (convertView == null) {
convertView = ((Activity) context).getLayoutInflater().inflate(R.layout.event,
parent, false);
holder = new ViewHolder();
holder.name = (TextView) convertView.findViewById(R.id.eventName);
holder.date = (TextView) convertView.findViewById(R.id.eventDate);
holder.attending = (TextView) convertView.findViewById(R.id.eventAttending);
holder.bgImg = (ImageView) convertView.findViewById(R.id.eventsImg);
holder.gpsIcon = (ImageView) convertView.findViewById(R.id.iconGPS);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// Configure the view for this event
final Event event = getItem(position);
holder.gpsIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Util.openMap(getContext(), event.getAddress());
}
});
holder.name.setText(event.getName());
holder.date.setText(Util.convertDashesToDate(event.getDate()));
holder.attending.setText(event.getAttending());
RequestUtil.getImageFullUrl(getContext(), event.getImage_url(), holder.bgImg, 10, 0);
return convertView;
}
@Override
public Event getItem(int position) {
return new Event(events.get(position));
}
static class ViewHolder {
TextView name;
TextView date;
TextView attending;
ImageView bgImg;
ImageView gpsIcon;
}
Пикассо код для получения изображения:
public static void getImageFullUrl(final Context context, String url, ImageView imgView, int radius, int margin) {
instance = appSingleton.getInstance(context);
instance.getPicasso()
.load(url)
.fit()
.centerCrop()
.tag("Request")
.transform(new RoundedTransformation((int) Util.convertPixelsToDp(radius, context),
(int) Util.convertPixelsToDp(margin, context))) // TODO Reuse RoundedTransform
.into(imgView);
}
Геттер не должен создавать объекты. – Blackbelt
Почему? Это предотвращает утечку памяти. – Jonfor