2

listView のビューのリサイクルが速すぎることがわかりました。

私のlistViewがスクロールすると、ビューが画面から落ちてすぐに削除されます。

各セル (行) には、universal-image-loader を使用して読み込まれた画像があります。
画面から落ちたビューは、可視領域に戻ったときに画像をリロードする必要があります。(スタブ イメージを短時間表示し、正しいイメージをロードします)。

私は間違いなくビューのリサイクル動作を維持する必要がありますが、ユーザーが画像の絶え間ないリロードに気付かないようにリストビューの動作を変更できますか?でしょう)

4

2 に答える 2

0

残念なことに、ListView とその仲間のコードは、事前に高さを知らずに不均一なサイズのアイテムをスクロールするように設計されているため、非常に複雑です。これにより、デフォルトの動作以外で実行することが非常に困難になります。さらに、動作を簡単にカスタマイズするためにアクセスする必要があるメソッドのほとんどは、非表示またはプライベートです。独自のものを試してロールバックするのは大変な作業です (複数のプラットフォーム、スクロール、フリング、ドラッグ、スクロール、キーボード フォーカスなどの微妙な点)。

最善の解決策は、おそらく、アクティブなビュー位置の周りを遅延して埋めるイメージ キャッシュを維持することです。必ずしも簡単ではありません。しかし、ListView を台無しにしようとする方が簡単です。

このための非常に便利な API は ListView.setRecyclerListener(AbsListView.RecyclerListener listener) で、どの画像がアクティブに表示されているかを追跡するためのフックを提供します。

于 2012-12-14T07:44:11.280 に答える