我在这个Android应用程序中实现了SimpleOnGestureListener,这是基本的实现方式,一切都按照预期工作:
该类实现了OnTouchListener,并将其设置为正确视图的触摸监听器,在触摸事件上,我调用了我的SimpleOnGestureListener实例。
在我的 fling 回调函数中,我记录了 velocityY(应用正在使用一些向下滑动的手势)。
该方法被调用后,我可以在我的日志上看到值。
问题在于对于Nexus 4和Nexus 10来说,向下滑动的velocityY是正值,而对于Nexus 7来说,它是负值。
我知道有人会建议使用 e2.getY - e1.getY(或原始值),但它们并不完全可靠,因为愚蠢的用户可能(也会)将视图向下拖动,然后将其向上扔,但差异仍将是正值。
所以问题是:有没有一种方法可以查询系统这个方向的内容?
该类实现了OnTouchListener,并将其设置为正确视图的触摸监听器,在触摸事件上,我调用了我的SimpleOnGestureListener实例。
@Override
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
在我的 fling 回调函数中,我记录了 velocityY(应用正在使用一些向下滑动的手势)。
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY){
Log.d(TAG, "velocityY = " + velocityY);
... some code ...
}
该方法被调用后,我可以在我的日志上看到值。
问题在于对于Nexus 4和Nexus 10来说,向下滑动的velocityY是正值,而对于Nexus 7来说,它是负值。
我知道有人会建议使用 e2.getY - e1.getY(或原始值),但它们并不完全可靠,因为愚蠢的用户可能(也会)将视图向下拖动,然后将其向上扔,但差异仍将是正值。
所以问题是:有没有一种方法可以查询系统这个方向的内容?