使用onTouchEvent仅处理水平移动

时间:2016-05-29 04:32:51

标签: android android-touch-event

我在布局中重写onTouchEvent,并且只想处理水平移动。

即如果左侧滑动发生,那么我将显示下一个/上一个帖子,如果发生任何垂直移动,那么我不会做任何事情,父母滚动就会发生。

我该怎么做?

switch (e1.getAction()) {
            case MotionEvent.ACTION_DOWN:
                offsetX = 0;
                offsetY = 0;
                startTouchPoint = new Point((int) e1.getX(), (int) e1.getY());
                break;
            case MotionEvent.ACTION_MOVE:
                movement = new Point(Math.abs((int) e1.getX() - startTouchPoint.x), Math.abs((int) e1.getY() - startTouchPoint.y));
                if (movement.y < movement.x) { // Horizontal movement

                    // Custom code to move to prev/next page.
                } else { // Vertical movement
                   // I need android to handle this.
                }

1 个答案:

答案 0 :(得分:0)

onTouchEvent返回一个布尔值。

如果处理了事件,只需返回True,否则返回false。

有关详细信息,请参阅https://developer.android.com/reference/android/view/View.html#onTouchEvent(android.view.MotionEvent)