【问题标题】:Handle only horizontal movement using onTouchEvent使用 onTouchEvent 仅处理水平移动
【发布时间】:2016-05-29 13:02:43
【问题描述】:

我在布局中覆盖 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.
                }

【问题讨论】:

    标签: android android-touch-event


    【解决方案1】:

    onTouchEvent 返回一个布尔值。

    如果事件被处理则返回 True,否则返回 false。

    详情请见https://developer.android.com/reference/android/view/View.html#onTouchEvent(android.view.MotionEvent)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-09
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多