Handle touch events in ScrollView Android

2019-03-25 07:32发布

问题:

I would like to implement drag-n-drop feature for Android 2.2. I override onTouchListener for each my control. But all my controls are inside ScrollView. When all my controls are visible on in ScrollView, then dra-n-drop works fine. But when not all controls are visible on screnn and scrolling appears, I can't use dra-n-drop. All events come to ScrollView and only scrollview proceed them. Contols didn't get touch events and as result, I can't drag my controls. Does anybody know how to resolve this issue? I suppose, that scrollview should proceed self touch event, but then it should transfer this touch event to the children controls. How can I do it? Or any other solutions?

回答1:

Use mScrollView.requestDisallowInterceptTouchEvent(true); to avoid ScrollView to handle touchEvents. Also as Ridcully pointed out handle the touch event in onInterceptTouchEvent().



回答2:

Have a look at the onInterceptTouchEvent() method. You'll have to sub-class ScrollView and override and tweak this method.