Android ChatHead仅限于自己的触摸,但我需要同时支持第二手指触摸聊天头外的区域,

http://www.piwai.info/chatheads-basics/通过遵循这个良好的指导,我可以做一个聊天头,也检测触摸事件。
但是,如果我用第一根手指触摸聊天头,并尝试用第二根手指触摸聊天头的其他区域(外部),则无法进行第二次触摸。
(外面的区域可以是主屏幕或其他应用程序的活动)
同样,如果我第一次触摸外面,并尝试用第二个手指触摸聊天头,这是不可能的。
我试过类似的与Facebook Messenger Messengerhead的交互,这是相同的。

我的问题是:是否有可能支持第二次触摸?
也许使用调度触摸事件? 但afaik调度只是为了活动。
聊天头使用服务和窗口。

任何帮助将深表感谢!

Solutions Collecting From Web of "Android ChatHead仅限于自己的触摸,但我需要同时支持第二手指触摸聊天头外的区域,"

是的,它可能使用以下解决方法。

  • 围绕你的聊天头有一个透明的布局。
  • 这个透明的布局将拦截触摸,你可以做必要的处理。
  • 然后,您可以通过从OnTouchEvent()返回false,将此触摸事件传递给层次结构/其他应用程序。

为了让其他应用程序处理触摸事件,透明视图只能在用户已经触摸你的聊天头时激活。这样你才能确保用户正在计划用你的聊天头做一些手势。

当底层视图来自完全不同的层次结构时,使用手动添加到WindowManager布局作为系统覆盖层是不可能的。

一旦你在第一个视图上开始触摸事件,所有后续的触摸事件将被发送到相同的视图,直到所有ACTION_UP完成(即发生ACTION_UPACTION_CANCEL )。

基本上,一旦你与一个视angular相互作用,任何外界触觉都被解释为触及当前层次之外,忽略任何可能或不可能占据相同屏幕位置的潜在视angular。