2016-04-07 14 views
0

は私がスクロール時に奇数視覚的なグリッチを持ってリストビューを持っているListViewのスクロールUIグリッチ

after scroll

これは断続的に発生し、私が持っていません私のアプリを閉じてリストをスクロールし始める以外にこれを再現する良い方法です。何が起こっているかについてのアイデア?画像を取得するための

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

getterはオブジェクトを作成すべきではありません。 – Blackbelt

+0

なぜですか?これにより、メモリリークが防止されます。 – Jonfor

答えて

0

私はそれがあなたのコード推測している。ここ

は、私がこのListViewコントロールのために使用私のarrayAdapterからいくつかの(多分)関連するコードです画像を設定する:

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

は、UIスレッドでイメージをロード(ダウンロード)して、ブロックを引き起こしますスレッドの実行。

私はRequestUtilの後ろに何があるのか​​分かりませんが、PicassoのようなAndroid用のいくつかの画像ロードライブラリの1つを使用することをお勧めします。たとえば、Picassoはバックグラウンドスレッドで画像を読み込む処理を行います。

+0

私はピカソを使用しています。 – Jonfor

関連する問題