【问题标题】:Dispatch Touch Events to Different Window (like PopUpWindow or Dialog Window)将触摸事件分派到不同的窗口(如 PopUpWindow 或对话框窗口)
【发布时间】:2013-02-24 15:46:01
【问题描述】:

我对 Touch Event Dispatch 有一个疑问。

通常活动与一个窗口相关联,所以如果我使用类似的代码 在下面,事件被正确地分派到相应的视图 那些坐标。

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

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

  1. 是否有任何 API 可用?

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

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

【问题讨论】:

    标签: android events touch dispatch


    【解决方案1】:

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

    dispatchTouchEvent(MotionEvent)
    
    onTouchEvent(MotionEvent)
    
    onInterceptTouchEvent(MotionEvent)
    

    【讨论】:

    • 如何在不直接引用 View(Group) 的情况下调度触摸事件?有什么方法可以定位到最上面的窗口吗?
    猜你喜欢
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 2016-06-22
    • 2012-04-07
    • 2011-01-21
    • 1970-01-01
    • 2014-09-06
    相关资源
    最近更新 更多