Android的手势GestureDetector, onFling之前肯定有onscroll吗?
我测试了每次onFling前都有许多onScroll,我如何确定本次手势会不会有onFling?...
我测试了每次onFling前都有许多onScroll,我如何确定本次手势会不会有onFling?
展开
1个回答
展开全部
Fling之前必然有scroll,因为Fling就是scroll达到一定速度的后续结果。
你在onScroll时,是无法判定之后会不会有fling,这个判定只能在ACTION_UP之后,通过计算手势的速度来决定。
你可能说,我可以中间根据scroll的速度来判断,可是呢,ta可能很快的滚过,但是马上慢下来,再慢慢抬起。所以在最后抬起之前判断,是做不到完全准确的。
你在onScroll时,是无法判定之后会不会有fling,这个判定只能在ACTION_UP之后,通过计算手势的速度来决定。
你可能说,我可以中间根据scroll的速度来判断,可是呢,ta可能很快的滚过,但是马上慢下来,再慢慢抬起。所以在最后抬起之前判断,是做不到完全准确的。
追问
我再问一下哈,我有没有办法判断ACTION_UP之后肯定有onFling?
追答
那要计算,方法是用VelocityTracker这个类,在ACTION DOWN和MOVE的时候,把action加入到这个跟踪器里,UP的时候,调用compute计算速度
根据最终的速度来决定,可以参考listview等实现
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询