3

学习如何使用 OnScrollListener 并且我想找到一种方法,当用户在列表视图中向上或向下滚动时,每次新列表项可见时,我可以检测到,如果用户向下滚动,我想为每个计数器增加 1进入屏幕的新单元格,如果它向上滚动,我希望它减少,任何帮助都会有很长的路要走,谢谢。

counter = 0;
    list.setOnScrollListener(new OnScrollListener() {
        public void onScrollStateChanged(AbsListView view, int scrollState) {

        }

        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {

            // If list scroll up
            counter++;

            // If list scrolls down
            counter--;

        }
    });
4

2 回答 2

3

我想通了,当您向下滚动时,第一个可见项目会增加一个

counter = 0;
    list.setOnScrollListener(new OnScrollListener() {
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            // Do nothing
        }

        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {

            if(firstVisibleItem > counter + 3 || firstVisibleItem < counter - 3){
                counter = firstVisibleItem;
                Toast.makeText(ListTestActivity.this,
                        "counter = " + counter,
                        Toast.LENGTH_LONG).show();
            }



        }
    });
于 2012-12-21T00:04:45.473 回答
1

使用firstVisibleItem变量。当它改变时,适当地调整你的计数。

于 2012-12-20T21:43:42.523 回答