2017-11-20 4 views
0

ピカソがImageViewsでrecyclerviewでどのように動作するかを理解しようとしています。ピカソとリサイクラの理解

ViewHolderピカソを再利用すると古い画像が読み込まれる可能性があります。私は意味する: mPicasso.load(url1).into(imageView); mPicasso.load(url2).into(imageView); ロードされる画像はどれですか?

画像の読み込み処理をキャンセルするにはどうすればよいですか?私は意味する

mPicasso.load(url1).into(imageView); // Start image loading 
.. 
// Image loading not finished, but 
// ViewHolder detaches 
// Should I remove any pending image loadings here or picasso will do it automatically? 

ありがとうございます!

+0

はい、ただし、ビューの切り離し時にpicassoが読み込みをキャンセルするためのビルドイントリガーはありますか? –

答えて

1

よくピカソは良いlibararyであり、プログラミングの頭痛そのものの多くを処理します。私はglideで働くことを本当に楽しむので、ピカソを使っていません。

ピカソは、ビューがリサイクルされるとキャンセル操作を処理すると思います。そうでない場合は、hereで説明されている手順の1つで簡単に行うことができます。これを試してみてください。

+0

お返事ありがとうございます!ピカソは私たちのビューホルダーがいつ離脱したのか分からないと思う。だから私は手動でリクエストを取り消すべきです。 –

+0

それからあなたはリクエストをキャンセルする方法です、リンクをチェックアウト –

0

ViewHolderがデタッチされたときにViewHolderでPicassoリクエストをキャンセルしたい場合は、 cancelRequest()をアダプタで使用してください。

@Override 
     public void onViewDetachedFromWindow(ViewHolder holder) 
     { 
      super.onViewDetachedFromWindow(holder); 
      Picasso.with(holder.notificationBannerIV.getContext()).cancelRequest(holder.notificationBannerIV); 
     } 
関連する問題