OnScrollListenerを使用します。このonScrollStateChanged()
メソッドは、ListView が(遅いスクロール) と(速いスクロール)の間SCROLL_STATE_IDLE
で切り替わったときに呼び出されます。これにより、状態が「アイドル」または「タッチ」の場合にのみ、新しい画像をロードすることを選択できます。SCROLL_STATE_TOUCH_SCROLL
SCROLL_STATE_FLING
添加
最初の実行では、ListView の表示項目は表示されません。たとえば、ListView に 4 つの項目が表示されている場合、アプリの起動時に、それらの 4 つの画像を読み込む必要があります。
私自身は Universal Image Loader を使用したことはありませんが、以下で説明したことから、ダウンロードを開始する前に表示される行数を知る必要があります。これを試して:
- Runnable を記述して、非同期ダウンロードを開始します。
- 行が描画された後、 ListView の組み込み Handler を使用して Runnable を呼び出します
例えば:
private Runnable loadImages = new Runnable() {
@Override
public void run() {
// Start the asynchronous downloads
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
mListView.post(loadImages);
}
ListView が描画された後loadImages
に呼び出されるため、表示されている行の数が正確にわかります。