我有两个活动A和B。我希望在A中捕获一个触摸事件MotionEvent.ACTION_DOWN,同时仍然按住,启动B,然后在B中捕获释放事件MotionEvent.ACTION_UP。
在 A 中有一个 View v 有一个 OnTouchListener 和以下回调:
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
startActivity(new Intent(A.this, B.class));
break;
case MotionEvent.ACTION_UP:
// not called
break;
}
// false doesn't work either
return true;
}
在 B 中,有一个重叠的 View v2(在原始 v 之上)具有相同类型的 OnTouchListener,但 B 的“onTouch”在活动开始时不会被调用,除非我移动我的手指(重新生成触摸事件)。
简而言之,我正在做一个应用程序,当我按住屏幕时会导致一个新的活动出现,并在我松开手指时完成。
不可能将 MotionEvent.ACTION_DOWNed 状态从一个视图转移到另一个视图吗?或者新活动 B 是否清除了任何当前仅对 A 可用的“屏幕触摸侦听器”,因为它是在那里启动的?
感谢您对这些 MotionEvents 如何被分派到活动和/或任何解决方案/破解我的问题的任何解释。