Как сделать так, чтобы оверлей получал сенсорные события, не используя сенсорный экран для других приложений? - PullRequest
0 голосов
/ 23 сентября 2019

В настоящее время я пытаюсь сделать утилиту наложения, похожую на заголовки чата Facebook Messenger, в которой вы можете перемещать представление по экрану.Когда вы щелкаете по представлению, оно расширяется в более сложный макет.Однако проблема в том, что, если я установлю флаг LayoutParams на WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, приложения будут получать сенсорные события, в то время как мое наложение вообще не получит сенсорных событий вообще.Но если я уберу этот флаг, оверлей получит прикосновения, но заблокирует прикосновение.Это означает, что я даже не могу открыть ящик приложения, так как касания блокируются.

Я использую полноэкранный прозрачный Activity в качестве фона, чтобы я мог перемещать свой «виджет» наложения вокруг него.

Есть ли способ сделать это так, чтобы он не блокировал сенсорные события.Даже если я не установил его в полноэкранный режим, пока у меня нет флага FLAG_NOT_TOUCHABLE, мое наложение полностью блокирует все касания экрана.

1 Ответ

1 голос
/ 23 сентября 2019

Снимите этот флаг

WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE 

с этим флагом

WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE

см. Эту ссылку https://medium.com/@kevalpatel2106/create-chat-heads-like-facebook-messenger-32f7f1a62064

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...