Android onFling MotionEvent不会更改

我正在开发一个项目,我正在使用一个在onScroll中移动的ImageView,最近我实现了一个onFling来检测刷卡,但是我刚刚看到当我滑动图片时,onFling中的两个MotionEvents获得相同的X值使用getX()。 但在视线外滑动时不会发生这种情况。

为什么会发生这种情况?
有没有办法解决它?
谢谢!

这就是我想要实现的:

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
    final int SWIPE_MIN_DISTANCE = 120;
    final int SWIPE_MAX_OFF_PATH = 250;
    try {

        if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH){
            return false;
        }
        // right to left swipe
        if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
                && Math.abs(velocityX) > Common.SWIPE_THRESHOLD_VELOCITY) {
            if (Common.search_submissions_ID < Common.search_submissions.length()) {
                Common.search_submissions_ID = Common.search_submissions_ID + 1;
                finish();
                startActivity(getIntent());
            } else {
                //Update
            }
        }
        // left to right swipe
        else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
                && Math.abs(velocityX) > Common.SWIPE_THRESHOLD_VELOCITY) {
            if (Common.search_submissions_ID > 0) {
                Common.search_submissions_ID = Common.search_submissions_ID - 1;
                finish();
                startActivity(getIntent());
            }
        }
    } catch (Exception e) {

    }
    return false;
}

PD:SWIPE_THRESHOLD_VELOCITY = 4500

链接地址: http://www.djcxy.com/p/16215.html

上一篇: Android onFling MotionEvent not change

下一篇: GestureDetector detect DoubleClick on GridView items