如何在android中为水平和垂直方向定义单独的触摸事件?

如何在android中为水平和垂直方向定义单独的触摸事件?,android,touch-event,Android,Touch Event,我有一个android应用程序。我有四个屏幕,每个屏幕包含一个列表视图。。我的要求是,当用户水平翻转时,它应该更改ui屏幕,当用户垂直翻转时,它应该滚动列表 public boolean dispatchTouchEvent(MotionEvent event) { System.out.println("22"); int eventaction=event.getAction(); switch(eventaction) {

我有一个android应用程序。我有四个屏幕,每个屏幕包含一个列表视图。。我的要求是,当用户水平翻转时,它应该更改ui屏幕,当用户垂直翻转时,它应该滚动列表

public boolean dispatchTouchEvent(MotionEvent event)
 {
     System.out.println("22");
       int eventaction=event.getAction();

         switch(eventaction) 
        {
          case (MotionEvent.ACTION_MOVE):
              System.out.println("move");
          a=1;
          break;

              case MotionEvent.ACTION_UP:
                  System.out.println("up");
              if(a==1)
              {
                  view1.setAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_left));
                  view1.showNext();
              }
              a=0;
                  break;

          default:
          break;
        }

        return super.dispatchTouchEvent(event);
}

我有一个类似的问题,孩子们正在吃掉所有的卷轴事件。最后,我在父对象中覆盖了
onInterceptTouchEvent
,以检测它是水平还是垂直滑动,并相应地执行操作。你会想要这样的

@Override
public boolean onInterceptTouchEvent (MotionEvent ev){
    if(horizontalSwipe(ev)){
        return true;
    }
    else
        return false;

}

其中有一些函数,可以根据历史记录确定新的运动事件是否构成水平运动事件。

我遇到过一个类似的问题,孩子们吃掉了所有的滚动事件。最后,我在父对象中覆盖了
onInterceptTouchEvent
,以检测它是水平还是垂直滑动,并相应地执行操作。你会想要这样的

@Override
public boolean onInterceptTouchEvent (MotionEvent ev){
    if(horizontalSwipe(ev)){
        return true;
    }
    else
        return false;

}

其中,您有一些功能,可以根据您的历史记录确定新的运动事件是否构成水平运动事件。

@OlofEdler他对他们的问题没有足够的答案。可能是因为他没有详细询问问题,也可能是因为需要专业知识或其他原因。@Paresh。那么他的评论呢:非常感谢你的代码……它正在工作,绝对应该被标记为接受,不是吗?@OlofEdler是的,你是对的。我刚刚检查了问题列表,上面有多少答案。@OlofEdler他对他们的问题没有足够的答案。可能是因为他没有详细询问问题,也可能是因为需要专业知识或其他原因。@Paresh。那么他的评论呢:非常感谢你的代码……它正在工作,绝对应该被标记为接受,不是吗?@OlofEdler是的,你是对的。我刚检查了问题列表,上面有答案的数量。