0

我对 Touch Event Dispatch 有一个疑问。

通常 Activity 与一个窗口相关联,因此如果我使用如下所示的代码,事件将正确分派到这些坐标处的相应视图。

getWindow().getDecoreView().dispatchTouchEvents()。

但是如果一些新的窗口出现在屏幕上,(如 Dialog 或 PopUpWindow)如何将事件发送到这些窗口?

  1. 是否有任何可用的 API?

  2. 任何想法,Android 框架如何将事件调度到最集中的最顶部窗口?

  3. 如果我们可以从框架中公开 API,任何指向特定类或函数的指针?

4

1 回答 1

2

android中的事件是逐级调度的。事件从activity->ViewGroup->View开始,你可以实现这些方法来控制事件的派发:

dispatchTouchEvent(MotionEvent)

onTouchEvent(MotionEvent)

onInterceptTouchEvent(MotionEvent)
于 2013-12-05T12:16:45.257 回答