0

语境

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

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

该标志FLAG_WATCH_OUTSIDE_TOUCH也被启用,以便我的叠加层在ACTION_OUTSIDE发生触摸事件时获得一个事件。

目标

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

我试过的

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

4

1 回答 1

0

好吧,我最终使用了 2 个覆盖窗口:

  • 用于捕捉内容上的触摸TYPE_SYSTEM_ALERT事件wrap_content
  • 一个TYPE_SYSTEM_OVERLAYmatch_parent

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

于 2012-12-17T08:57:29.260 回答