onFling无法触发

来源:互联网 发布:第三次经济普查数据库 编辑:程序博客网 时间:2024/05/29 13:35

今天使用 ViewFlipper 来实现手势的时候 onFling的事件怎么也触发不了 .

后来找到原因 ,原来是加入ScrollView后就没法响应了。

再后来看到说用dispatchTouchEvent(MotionEvent ev) 的方法,果然可以,不过帖子没说具体怎么办,查了些文档,试验了几个方法,果然找到了一个,和大家分享下。
具体原因我也不是很明白,可能是因为ScrollView抢占了MotionEvent 事件,所以GestureDetector
捕获不到任何的touch event,自然就不会相应了,方法是@override
public boolean dispatchTouchEvent(MotionEvent ev) {
                mGestureDetector.onTouchEvent(ev);
                scroll.onTouchEvent(ev);
                return super.dispatchTouchEvent(ev);

        }
然后发送MotionEvent分别给你的GestureDetector和ScrollView,而不是dispatchMotionEvent,我猜测dispatch后会被ScrollView先取走,从而GestureDetector就无法响应了,所以这里就都派发出去