【问题标题】:Receive touch events following an ACTION_OUTSIDE在 ACTION_OUTSIDE 之后接收触摸事件
【发布时间】:2012-12-17 16:57:29
【问题描述】:

上下文

我有一个全屏覆盖窗口 (TYPE_SYSTEM_ALERT)。

启用标志FLAG_NOT_TOUCHABLE,以便底层窗口获取触摸事件。

FLAG_WATCH_OUTSIDE_TOUCH 标志也已启用,这样当触摸事件发生时,我的叠加层会收到 ACTION_OUTSIDE 事件。

目标

如果触摸事件发生在屏幕的特定区域,我希望我的叠加层变为“可触摸”并接收所有后续触摸事件(移动、向上、...)。

我尝试了什么

我在收到ACTION_OUTSIDE 时尝试删除FLAG_NOT_TOUCHABLE,但直到当前的一系列触摸结束(即ACTION_UP 事件)后我才收到触摸事件。

【问题讨论】:

    标签: android overlay


    【解决方案1】:

    好吧,我最终使用了 2 个叠加窗口:

    • TYPE_SYSTEM_ALERTwrap_content 用于捕获内容上的触摸事件
    • TYPE_SYSTEM_OVERLAYmatch_parent

    当触摸开始/结束时,我将内容视图从一个窗口转移到另一个窗口。

    【讨论】:

    • 你能提供样品你是怎么做到的吗?我也面临同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多