TYPE_SYSTEM_OVERLAY в ICS - PullRequest
       44

TYPE_SYSTEM_OVERLAY в ICS

12 голосов
/ 11 марта 2012

В Honeycomb мне удалось создать системный оверлей с помощью TYPE_SYSTEM_OVERLAY и получать касания с помощью FLAG_WATCH_OUTSIDE_TOUCH.

Теперь ICS что-то изменило. Я все еще могу создать системный оверлей, но не могу получить прикосновения.

Теперь я могу создать то же самое с TYPE_SYSTEM_ALERT и получать прикосновения, но он просто ловит прикосновения, а не передает их, как в Honeycomb.

Есть идеи?

С уважением

Ответы [ 2 ]

24 голосов
/ 04 января 2013

Чтобы создать вид наложения, при настройке параметров LayoutParams НЕ установите тип TYPE_SYSTEM_OVERLAY.

Вместо этого установите значение TYPE_PHONE.

* 1008.* Используйте следующие флаги:

FLAG_NOT_TOUCH_MODAL

FLAG_WATCH_OUTSIDE_TOUCH

FLAG_NOT_TOUCH_MODAL << Я считаю, что это очень важно.Без этого основное внимание уделяется наложению, а нажатия программных клавиш (домой, меню и т. Д.) Не передаются в занятии ниже. </p>

7 голосов
/ 11 марта 2012

Все, что вы описываете, правда.Предположительно, необходимо усилить безопасность, поскольку прежнее поведение было источником атак с использованием кражи.Я недавно написал в блоге об этом изменении.

Есть идеи?

Не используйте ни одну из них.

...