最後の行を表示しているときにリストビューにデータをロードしたい。リストビューのスクロールイベントを書いています。
リストビューに最後の行が表示されていることを検出するにはどうすればよいですか?
誰か助けてくれませんか?
最後の行を表示しているときにリストビューにデータをロードしたい。リストビューのスクロールイベントを書いています。
リストビューに最後の行が表示されていることを検出するにはどうすればよいですか?
誰か助けてくれませんか?
lv.setOnScrollListener(new OnScrollListener() {
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// Check if the last view is visible
if (++firstVisibleItem + visibleItemCount > totalItemCount) {
// if so, download more content
}
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
}
});
Amazing ListViewを使用して、次のページを自動ロードすることができます(つまり、最後のアイテムの「ロード中...」)。
ドキュメントに従って、これらのメソッドを実装します。
onNextPageRequested
「読み込み中」インジケーターが表示されるまでユーザーがリストをスクロールすると呼び出されます。これはUIスレッドで呼び出されるため、ネットワークリクエストがある場合は、必ずバックグラウンドで実行してください。ページ番号も表示されます。デフォルトでは、最後のページにいると見なされ、リストの下部に「読み込み中...」というメッセージは表示されません。表示するページがまだあるかどうかを制御する必要があります。
notifyMayHaveMorePages
まだデータが残っていることを示すために、「Loading...」メッセージが表示されます。notifyNoMorePages
すべてのデータがロードされたことを示すため、「Loading...」メッセージは表示されなくなります。nextPage
ページ番号を増やします。アダプターに新しいデータを追加するときにこれを行います。resetPage
ページ番号を1(またはで指定された値setInitialPage
)にリセットします。
onNextPageRequested
したがって、が呼び出されたときに、より多くのデータをフェッチする必要があります。nextPage
また、アダプタに新しいデータを追加するときに呼び出します。
リストビューでこれを試してみてください..それは私と一緒にうまくいきます..
((ScrollView) findViewById(R.id.scrollDowns)).fullScroll(View.FOCUS_DOWN);