リストビューを実装しました。すべてのユーザーが下の画面にスクロールし、リストビューに新しいデータを自動的に追加します。スクロールが完了すると、表示ビューに入るすべての新しいアイテムに対して、最初から最後までonScroll()が呼び出されます。スクロール。
lv_best = (ListView) findViewById(R.id.lv_best);
bestadapter = new LazyAdapter(this, lst_tab_best);
lv_best.setAdapter(bestadapter);
lv_best.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) { }
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
Log.d("onScroll ", firstVisibleItem+"-"+visibleItemCount+"-"+totalItemCount);
boolean loadMore = firstVisibleItem + visibleItemCount >= totalItemCount;
if(loadMore){
new ChangeTab_best().execute();
}
}
});
エミュレーターで実行し、5つの項目を含む上記のリストを表示しましたが、ListViewでスクロールの終了を検出できず、ChangeTab_best()が何度も呼び出されます。Logcatandroidを見ると、すべての変数firstVisibleItem、visibleItemCount、totalItemCountは常に0になります。
では、ここで何が起こっているのでしょうか。