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