MotionEvent.ACTION_DOWN 没有被调用,即使我为它返回 true

rav*_*sgo 4 android ontouchlistener motionevent

我有一个onTouchListenerfor 我LinearLayoutListViews 并且我正在尝试使用ACTION_DOWNACTION_UP数据来检测用户何时滑动到下一个ListView. 然而,MotionEventnever equals ACTION_DOWN,虽然ACTION_UP工作完美。经过大量的谷歌搜索,我能找到的唯一解决方案是在调用事件时返回 true,但我已经这样做了。这是我的onTouchListener代码

View.OnTouchListener mTouchListener = new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                downX = event.getX();
                return true;
            } else if (event.getAction() == MotionEvent.ACTION_UP) {
                upX = event.getX();
                if(userSwipedFarEnough)
                    doStuff()
                return true;
            }
            return false;

        }

    };
Run Code Online (Sandbox Code Playgroud)

rav*_*sgo 5

我弄清楚发生了什么,我的列表视图的滚动视图以某种方式窃取了 action_down 所以它没有被调用。当我有一个空的列表视图并且滚动工作时,我意识到了这一点。