Android захватывает все события движения и отправляет их детям - PullRequest
4 голосов
/ 12 сентября 2011

Хорошо, у меня больше часа болит голова. У меня есть несколько ScrollViews в ViewFlipper. Я хочу реализовать жест влево / вправо, позволяя прокрутке прокрутки. Идея довольно проста - перехватить событие и видоискатель, разобрать его и передать детям независимо от того, что случилось. Таким образом, я могу легко обнаружить удар, не связываясь с событиями.

Теоретически все, что мне нужно сделать, это обработать onTouch или что-то в этом роде и вернуть false, поэтому событие будет отправлено дочерним элементам. Но Android настолько умен, что он не будет отправлять мне другие события, кроме ACTION_DOWN, если я верну false, потому что он думает, что я не хочу их.

Так, как я могу захватить все события движения, приходящие на ViewFlipper и его дочерние элементы, и при этом отправлять их дочерним элементам? Я могу справиться с обнаружением удара сам.

Ответы [ 2 ]

1 голос
/ 12 сентября 2011

Android очень противен подобным вещам.Вы должны создать подкласс и реализовать dispatchTouchEvent так, как вам нужно.Или вы можете получить код Android и изменить его.Я пытался использовать onInterceptTouchEvent (), но нашел его непригодным для использования.

1 голос
/ 12 сентября 2011

проверьте onInterceptTouchEvent() для группы представлений, если вы хотите проанализировать прикосновения к флипперу представления и вернуть false, чтобы передать действия дочерним представлениям. Посмотрите следующую ссылку для получения дополнительной информации.

http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent(android.view.MotionEvent)

...