我在ImageView上加了OnGestureListener:   @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
        float velocityY) {
        // 参数解释:
        // e1:第1个ACTION_DOWN MotionEvent
        // e2:最后一个ACTION_MOVE MotionEvent
        // velocityX:X轴上的移动速度,像素/秒
        // velocityY:Y轴上的移动速度,像素/秒
        // 触发条件 :
        // X轴的坐标位移大于FLING_MIN_DISTANCE,且移动速度大于FLING_MIN_VELOCITY个像素/秒
        return onSliding(e1, e2, velocityX, velocityY);
    } /**
 * 滑动
 * @param e1
 * @param e2
 * @param velocityX
 * @param velocityY
 * @return
 */
private boolean onSliding(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (listener == null) {
            return false;
        }        if (!listener.isCanSliding()) {
            return false;
        }        //未获取触点坐标
        if (e1==null || e2==null){
         return false;
        }
        
        listener.beforeSliding();        if ((e1.getX() - e2.getX()) > FLING_MIN_DISTANCE)//&& Math.abs(velocityX) > FLING_MIN_VELOCITY
        {
            // 当像左侧滑动的时候  
            //设置View进入屏幕时候使用的动画  
            listener.showNext();
            Log.v(TAG, "sliding next:" + String.valueOf(e2.getX()));
        } else if ((e2.getX() - e1.getX()) > FLING_MIN_DISTANCE)//&& Math.abs(velocityX) > FLING_MIN_VELOCITY
        {
            // 当像右侧滑动的时候  
            listener.showPrevious();
            Log.v(TAG, "sliding previous:" + String.valueOf(e2.getX()));
        }        this.target.setPressed(false);        Log.v("onFling", velocityX + " - " + velocityY);
        listener.afterSliding();
        return true;
}如果手势不是沿接近X轴的方向移动,取得到e1为null,否则能取得e1。但我把手势加到RelativeLayout上时,手势沿并非x轴的方法移动则到取到e1,这是怎么回事,哪位大哥帮忙解答一下。