`dispatchGesture` игнорировать представление наложения

Я использую API dispatchGesture из специальных возможностей Android.

Я добавил оверлей на экран, и я ищу способ dispatchGesture за оверлеем (оверлей - это то, что перехватывает исходный жест), поскольку в противном случае жест отправляется на мой OverlayView и не воспроизводится в приложении .

Есть ли способ сделать это с помощью API специальных возможностей?

Для контекста - я хочу иметь возможность помогать людям записывать действия в Android и воспроизводить их для доступности.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
359
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Увы, сделать это вообще нет возможности. Сенсорный оверлей улавливает все прикосновения, когда вы наблюдаете. Невозможно выполнить универсальную фильтрацию событий касания.

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

Универсального API фильтрации не существует, потому что очень сложно фильтровать события касания вне системного процесса, не создавая серьезного мусора.

Хм, спасибо! Не могли бы вы подробнее рассказать о том, что «API фильтрации общего назначения не существует, потому что очень сложно фильтровать события касания вне системного процесса, не создавая серьезного мусора»? Кроме того, я был бы доволен простым пропуском оверлея, а не общей фильтрацией событий (чтобы человек, записывающий, мог видеть действие во время его записи).

Benjamin Gruenbaum 24.12.2018 13:21

Есть много способов ввести джанк при фильтрации входных событий. Самый простой - выделить память, что время от времени может приводить к сборке мусора. Но мне удавалось сделать ввод неровным разными способами. Обратите внимание, что пропуск наложения - это, по сути, еще один способ создания такого фильтра.

Phil Weaver 02.01.2019 20:24

Вы должны использовать флаг параметров FLAG_NOT_TOUCHABLE для своего представления, а затем отправить свой клик.

Другие вопросы по теме