Android List OnScrollListener每次在任一方向上都可以看到新的List项时如何检测

时间:2012-12-20 21:16:02

标签: android listview onscroll

学习如何使用OnScrollListener,我希望每当用户在列表视图中向上或向下滚动时,我都可以检测到新的List项,如果用户向下滚动,我想通过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--;

        }
    });

2 个答案:

答案 0 :(得分:3)

我想通了,当你向下滚动时,第一个可见项增加1

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();
            }



        }
    });

答案 1 :(得分:1)

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