我的"活动"是否可以将生成的触摸/运动事件发送到其子视图



我有一个Activity,它生成一些MotionEvent(通过MotionEvent.obtain())。我想将这些生成的触摸/运动事件传递给Activity的children视图。在文档中,只有当其中一个子视图没有处理该事件时,才会调用Activity.onTouchEvent(),这意味着我不能调用它来将生成的触摸事件传递给子视图。

有没有办法将生成的触摸事件从父视图MainActivity发送到其子视图,使其正常响应(例如,如果子视图设置了OnClickListener,并且我将生成的向下/向上触摸事件发送到子视图,我希望调用OnClickListener)?

请注意,我并没有试图将触摸事件从一个活动发送到另一个活动,这一切都在我自己的应用程序中。此外,我的设备没有root,所以需要root的解决方案对我没有帮助。

刚刚想好了。解决方案是使用Activity.dispatchTouchEvent()。例如,以下在我的视图中注册为点击事件:

dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 200, 200, 0));
dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, 200, 200, 0));

最新更新