想弄个拨动的效果,所以研究了一下GestureDetector的使用。
在网上找了一些资料,无非都是在Activity中增加一个GestureDetector实例,然后设置监听器,处理各类事件,等等。
一般可参考:
http://www.androidsnippets.org/snippets/19/
http://www.williamhua.com/2009/04/23/android-touchscreen-gesture-recogniton/
http://www.anddev.org/gesturedetector_and_gesturedetectorongesturelistener-t3204.html
但是,今天我要处理的是在自定义的ViewGroup中处理手势,所以打算将这个GestureDetector放在MyViewGroup中,结果却不如人意。
加Log跟了一下,看看OnTouchEvent的调用过程,发现问题出在:DOWN和UP事件,先由ViewGroup处理,再由Activity处理。但是MOVE事件则只有Activity中有表现,ViewGroup则没有动作。所以简单地将GestureDetector放在ViewGroup中,是只能得到OnDown和OnShowPress,得不到OnFlip和OnScroll。
我能想到的处理办法是在Activity中再将Move和Up传给ViewGroup。这样就OK了。
但是觉得这种方法不是很爽,有哪位同仁给点更好的办法?先谢过了。