ICS中的TYPE_SYSTEM_OVERLAY

在Honeycomb中,我能够使用TYPE_SYSTEM_OVERLAY创build一个系统覆盖,并通过FLAG_WATCH_OUTSIDE_TOUCH接收触摸。

现在ICS已经改变了一些东西。 我仍然可以创build系统覆盖,但我无法触及。

现在,我可以使用TYPE_SYSTEM_ALERT创build相同的代码,但是它只是捕获了touchevent,并不像Honeycomb那样传递它们。

有任何想法吗?

亲切的问候

你所描述的一切都是真的。 这大概是为了加强安全,因为前者的行为是劫掠攻击的来源。 我最近写了一篇关于这个改变的博客文章 。

有任何想法吗?

不要使用它们中的任何一个。

要创build叠加视图,在设置LayoutParams时不要将types设置为TYPE_SYSTEM_OVERLAY

相反,将其设置为TYPE_PHONE

使用以下标志:

FLAG_NOT_TOUCH_MODAL

FLAG_WATCH_OUTSIDE_TOUCH

FLAG_NOT_TOUCH_MODAL <<我发现这个很重要。 没有它,重点是覆盖和软键(家庭,菜单等)按下不传递给下面的活动。