私は少し混乱しています:原則として、ある種のリストビュー(AndroidまたはiOS、または別のプラットフォームの要約)に画像を非同期でロードする場合、基本的にこれを行う必要があります..
-- make a note of "which" cell this is (say, #213)
-- start getting the image from the net.
-- it has loaded from the net. What cell are we now?
-- if we are "still" 213, load the image to the image view!
-- if we are "no longer" 213, just forget about it.
これは、非同期イメージの遅延読み込みの基本です。たとえば、Lucas Rocha は次の有名な記事でそれを完全に説明しています。
http://lucasr.org/2012/04/05/performance-tips-for-androids-listview/
(正確に「これは、あなたがそれを行うことができる1つの方法の単純なスケッチです:」までスクロールします...)
さて、私が理解しているように、ピカソは実際にこれを完全に自動的に行います。
ビューが変更されたかどうかは、Picasso 自身が「認識」しています。ビューが変更された場合、Picasso はわざわざそれをロードしないことを知っています。
私は完全に正しいですか?これは Picasso の組み込み機能であり、他に何もする必要はありませんか?
(余談ですが、ピカソがこれを「どのように」行うのか少し混乱しています。ちらっと見ても、ピカソにIDやホルダーの何かを記録する魔法のコードが見当たりませんか?ビュー?問題。)
明確にするために、私は基本的に getView の最後に、このように通常の方法で Picasso を使用しています...
Picasso.
with(State.mainContext).
load(imageFile.getUrl()).
placeholder(R.drawable.default).
noFade().
into(v.hexaIV);