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

时间:2015-10-26 13:14:09

标签: android android-layout 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;
                }
            });
        }

我已尝试过此代码。但它并没有完美运作。

当我向上滚动时,它会在日志中显示&#34;向上滚动&#34;在第一次,然后它显示&#34;向下滚动&#34;。

任何人都可以告诉我它为什么会这样。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

尝试this solution,您的问题似乎相似,也许跟踪滚动的方向就足以满足您的需求。