某些背景。
我有一个与WindowManager一起添加的RelativeLayout,类型为TYPE_SISTEM_ALERT
,标志为FLAG_NOT_TOUCH_MODAL FLAG_WATCH_OUTSIDE_TOUCH
。
我可以在这个RelativeLayout上或者在“后面”的活动中获得触摸事件,但只要它不是“RelativeLayout window”的一部分就添加了。
*黑条是我的RelativeLayout上的视图;
*红色矩形是此RelativeLayout的整个容器;
*黄色的星星是从黑色视图中创建的空间点;
*空格是此RelativeLayout窗口背后的活动。
想象一下,在活动A的黄色星点上有一个按钮,但对用户来说是可见的,如果他点击那里。
活动A的按钮应该能够响应,即使它在这个RelativeLayout窗口的“后面”。
我的推荐,但遗憾的是到目前为止没有成功:
答案 0 :(得分:1)
这有解决方法吗?
如果相关活动是您自己的活动,请删除系统级叠加层并在您自己的视图层次结构中实施叠加层。
如果有问题的活动不是您自己的活动,那么AFAIK无法实现您想要的活动。 Android中的Windows,至少目前是纯粹的矩形;我知道您无法将窗口设置为非矩形,并且活动确实是这些透明区域中最顶级的项目。并且,出于安全原因(tapjacking攻击),自Android 4.0以来,传递触摸事件已被阻止。