4

最後の行を表示しているときにリストビューにデータをロードしたい。リストビューのスクロールイベントを書いています。

リストビューに最後の行が表示されていることを検出するにはどうすればよいですか?

誰か助けてくれませんか?

4

4 に答える 4

5
        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

        }
    });
于 2012-07-18T08:48:34.783 に答える
0

Amazing ListViewを使用して、次のページを自動ロードすることができます(つまり、最後のアイテムの「ロード中...」)。

ListViewと

ドキュメントに従って、これらのメソッドを実装します。

  • onNextPageRequested「読み込み中」インジケーターが表示されるまでユーザーがリストをスクロールすると呼び出されます。これはUIスレッドで呼び出されるため、ネットワークリクエストがある場合は、必ずバックグラウンドで実行してください。ページ番号も表示されます。

デフォルトでは、最後のページにいると見なされ、リストの下部に「読み込み中...」というメッセージは表示されません。表示するページがまだあるかどうかを制御する必要があります。

  • notifyMayHaveMorePagesまだデータが残っていることを示すために、「Loading...」メッセージが表示されます。
  • notifyNoMorePagesすべてのデータがロードされたことを示すため、「Loading...」メッセージは表示されなくなります。
  • nextPageページ番号を増やします。アダプターに新しいデータを追加するときにこれを行います。
  • resetPageページ番号を1(またはで指定された値setInitialPage)にリセットします。

onNextPageRequestedしたがって、が呼び出されたときに、より多くのデータをフェッチする必要があります。nextPageまた、アダプタに新しいデータを追加するときに呼び出します。

于 2012-07-18T08:48:55.547 に答える
0

リストビューでこれを試してみてください..それは私と一緒にうまくいきます..

((ScrollView) findViewById(R.id.scrollDowns)).fullScroll(View.FOCUS_DOWN);
于 2012-07-18T09:34:47.023 に答える