31

リストの最後の要素までスクロールすると、リストビューの下部に新しい項目が追加される、Android ListView コンポーネントにエンドレス スクロールを実装したいと思います。

4

2 に答える 2

35

onscrolllistener() を実装する

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    this.currentFirstVisibleItem = firstVisibleItem;
    this.currentVisibleItemCount = visibleItemCount;
}

public void onScrollStateChanged(AbsListView view, int scrollState) {
    this.currentScrollState = scrollState;
    this.isScrollCompleted();
 }

private void isScrollCompleted() {
    if (this.currentVisibleItemCount > 0 && this.currentScrollState == SCROLL_STATE_IDLE) {
        /*** In this way I detect if there's been a scroll which has completed ***/
        /*** do the work for load more date! ***/
        if(!isLoading){
             isLoading = true;
             loadMoreDAta();
        }
    }
}

このリスナーを実装してリストビューに追加すると、スクロール位置がリストの最後にあったため、リストビューの最後が検出され、より多くのデータが取得されます。また、データのロード中に、スクロール位置が終了したときにデータを一度にロードするには、1 つのフラグが必要です。そのため、データの読み込み中に上にスクロールしてから下にスクロールすると、複製用のデータは取得されません。

于 2012-09-25T12:57:16.707 に答える
9

OnScrollListenerで試してみてListViewください

public void onScroll(AbsListView view,
    int firstVisible, int visibleCount, int totalCount) {

    // Add the items

    }
}

そして、設定するadapter.notifyDataSetChanged()と、追加されたアイテムが表示されますここでは、ListViewListViewと統合する方法の例をいくつか示しますonScrollListener

  1. Android エンドレス リスト

  2. エンドレススクロールリストビュー

  3. 無限のリストビュー

于 2012-09-25T14:22:21.780 に答える