Если родитель перехватывает событие движения, единственный способ предотвратить это — запретить родителю перехватывать это событие. С этим можно хорошо справиться двумя способами.
Не видя конкретного кода и не желая получить обобщенное решение, я бы предложил следующее.
Я бы предложил управлять событиями касания для родителей и ребенка, управляя
requestDisallowInterceptTouchEvent(boolean) и
onInterceptTouchEvent(android.view.MotionEvent) обработчики событий каждого представления/группы представлений в затронутых представлениях A, B C.
Запрещая родительские перехваты в дочернем, это помогает вам перехватывать родительские перехваты, которые вы не учли, а также настраивать и изменять дочерние элементы внутри одного родителя.
Это должно управляться из вашего самого высокого родителя вашего представления/группы просмотра и управляться через все родительские и дочерние отношения.
Проверка списков, любого элемента со встроенными сенсорными событиями.
android.com/training/gestures/viewgroup
С точки зрения поиска оскорбительного представления, которое перехватывает событие, на которое нельзя ответить, кроме как по логике:
Пройдите через каждого родителя к дочернему/родительскому к дочернему представлению. Методично проверяйте обработку касания в каждой группе представлений/представлений, как показано на моей диаграмме.
![Просмотреть диаграмму](https://i.stack.imgur.com/pWAdz.png)
В этих ответах есть более подробная информация:
https://stackoverflow.com/a/30966413/3956566
https://stackoverflow.com/a/6384443/3956566
Я уверен, что вы понимаете это, но для меня это самое простое решение.
Помимо этого, нам нужно будет просмотреть ваш код, чтобы устранить неполадки.
person
Community
schedule
04.09.2015
ACTION_DOWN
? - person Barend   schedule 21.07.2015