Android:检测ListView上下滚动监听器



在我的应用程序中尝试侦听listView滚动运动,无论它是向上还是向下

contactsList.setOnScrollListener(new AbsListView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            view.setOnTouchListener(new View.OnTouchListener() {
                private float mInitialX;
                private float mInitialY;
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    switch (event.getAction())
                    {
                        case MotionEvent.ACTION_DOWN:
                            mInitialX = event.getX();
                            mInitialY = event.getY();
                            return true;
                        case MotionEvent.ACTION_MOVE:
                            final float x = event.getX();
                            final float y = event.getY();
                            final float yDiff = y - mInitialY;
                            if (yDiff > 0.0) {
                                Log.e("Tag ","Scroll down");
                                break;
                            } else if (yDiff < 0.0) {
                                Log.e("Tag ","Scroll up");
                                break;
                            }
                            break;
                    }
                    return false;
                }
            });
        }

我试过这个代码。但它并没有完美地工作。

当我向上滚动时,第一次在日志中显示"向上滚动",然后显示"向下滚动"。

谁能告诉我它为什么会这样?

提前感谢:)

尝试这个解决方案,你的问题似乎相似,也许跟踪滚动的方向是足够的你需要的

最新更新