2016-04-07 35 views
0

I kaydırma zaman bir tek görsel aksaklık sahip bir liste görünümü vardırliste görünümü kaydırma UI aksaklık

after scroll

Bu aralıklı olur ve yok Bunu, uygulamayı kapatıp listeyi kaydırmaya başlamak dışında yeniden üretmenin iyi bir yolu. Neler olduğu hakkında bir fikrin var mı?

@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; 
} 
görüntüyü almak için

Picasso kodu: Burada

Bu liste görünümü için kullanmak benim arrayAdapter bazı (belki) İlgili koddur

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); 
} 
+0

getter, nesne oluşturmamalıdır. – Blackbelt

+0

Neden? Bu bir bellek sızıntısını önler. – Jonfor

cevap

0

tahmin ediyorum kodunuzu o

RequestUtil.getImageFullUrl(getContext(), event.getImage_url(), holder.bgImg, 10, 0); 

blok neden UI iş parçacığı üzerinde (indirme) resim yükleme geçerli: görüntüyü ayarlar iş parçacığı.

RequestUtil'inizin arkasında ne olduğunu bilmiyorum, ancak Picasso gibi çeşitli iyi resim yükleme kitaplıklarından birini kullanmanızı öneririm. Picasso, örneğin, görüntüyü sizin için arka plan iş parçacığına yükleyecek.

+0

Picasso kullanıyorum. – Jonfor