Страницы

Поиск по вопросам

вторник, 19 марта 2019 г.

Android, вызов onTouchListener только внутри view

Имеется кнопка, с прикрепленным onTouchListener. Если я нажимаю кнопку и двигаю палец за границы кнопки, то onTouchListener всё равно вызывается. Как можно поменять это поведение, чтобы обработчик не вызывался за пределами View, к которому он прикреплен?
Сделал скриншот проблемы, которую пытаюсь решить. Когда я нажимаю палецем и двигаю им к нижней части экрана, то после определенной черты при опускании второго пальца координаты странным образом "прыгают", а мне нужна точная обработка касания в зеленых границах, без мультитачей и выхода за зеленые границы


Ответ

Вам надо переопределить onTouchEvent для корневого View следующим образом (тем самым вы будете игнорировать мультитач в пределах этого View):
@Override public boolean onTouchEvent(MotionEvent event) {
if(event.getPointerCount() > 1) //если определили второе и более касание, игнорируем его return true; else return super.onTouchEvent(event); }

Комментариев нет:

Отправить комментарий