2

カスタマイズされたリストがあり、画像とテキストを示す各行と画像をサーバーからダウンロードする必要があります。

そのため、アダプターをカスタマイズし、その getView メソッドで、画像をダウンロードするための非同期タスクを開始しました。

しかし問題は、リストに50個のアイテムがある場合、リストの1番目から50番目のアイテムを一度にスクロールすると、

次に、行ごとに、その行が表示されていなくても、画像のダウンロードが開始されます...

それで、これに対する解決策は何ですか?

どんな助けでも大歓迎です

ありがとう

4

2 に答える 2

0

これはよく知られている問題です。レイジー画像の読み込みを読んで、同様の問題を見つけてください。これは、convertViewの使用法などを追加する場合は特に明らかな問題ではありません。

簡単な回避策-たとえば最大4スレッドの画像をThreadExecutorにダウンロードし、不要になったすべてのタスクをキャンセルすることをお勧めします。convertViewを使用する場合、setTag(asyncTask)を使用してタスクをビューにアタッチし、新しいビューが来るときにそれをキャンセルできます。また、LRUキャッシュを使用して一部の画像を保存し、リストをスクロールするたびに画像を読み込まないようにすることもできます。

于 2013-03-18T20:09:59.933 に答える
-1

getView は、表示されている行に対してのみ呼び出されます。そこでダウンロードを開始すると、表示されているビューのみがダウンロードされます。注: アダプターの getView を自分で呼び出さないでください。listView の主要な問題が発生します。

于 2013-03-18T19:13:13.567 に答える