如何将子视图的触摸事件传递给父视图?

3

我正在尝试在Android应用程序中实现拖放功能。拖动部分已经完成,唯一剩下的是弄清楚被拖动的视图将会落在哪里?更准确地说,它将落在哪个视图上。 这是我的拖动视图的onTouch函数:

public boolean onTouch(View v, MotionEvent event) {
  // Is the event inside of this view?
  if (!mRegion.contains((int) event.getX(), (int) event.getY())) {
   return false;
  }

  if (event.getAction() == MotionEvent.ACTION_DOWN) {
   ...
   System.out.println("**** IMAGE DRAG STARTED!");
   return true;
  } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
                        ...
   this.invalidate();
   return true;   
  } else if (event.getAction() == MotionEvent.ACTION_UP){
   System.out.println("**** ICON DRAG ENDED!");
   return false;
  } else {
   return true;
  }
 }

除了 ACTION_UP(视图释放的时刻)之外,所有运动事件都已处理。问题是如何使此事件在父级中调用(将其传递给父级的 onTouch 处理程序),以便我可以找出它被放置在哪里。我已经在父级中实现了 onTouch 处理,但没有捕获到任何事件。
谢谢。
1个回答

3

覆盖 onInterceptTouchEvent(MotionEvent event) 方法


很高兴为您服务。请查看GestureDetector和VelocityTracker,它们可能会对您有所帮助。 - techi.services

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接