首页>
知识库>
详情

仿照Launcher的Workspace实现左右滑动切换

2020-07-20 来源:CloudBest 阅读量: 0
关键词:

    // Fling enough to move right
    Log.e(TAG, "snap right");
    snapToScreen(mCurScreen + 1);
    } else {
    snapToDestination();
    }
    if (mVelocityTracker != null) {
    mVelocityTracker.recycle();
    mVelocityTracker = null;
    }
    // }
    mTouchState = TOUCH_STATE_REST;
    break;
    case MotionEvent.ACTION_CANCEL:
    mTouchState = TOUCH_STATE_REST;
    break;
    }
    return true;
    }
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
    // TODO Auto-generated method stub
    Log.e(TAG, "onInterceptTouchEvent-slop:"+mTouchSlop);
    final int action = ev.getAction();
    if ((action == MotionEvent.ACTION_MOVE) &&
    (mTouchState != TOUCH_STATE_REST)) {
    return true;
    }
    final float x = ev.getX();
    final float y = ev.getY();
    switch (action) {
    case MotionEvent.ACTION_MOVE:
    final int xDiff = (int)Math.abs(mLastMotionX-x);
    if (xDiff>mTouchSlop) {
    mTouchState = TOUCH_STATE_SCROLLING;
    }
    break;
    case MotionEvent.ACTION_DOWN:
    mLastMotionX = x;
    mLastMotionY = y;
    mTouchState = mScroller.isFinished()? TOUCH_STATE_REST : TOUCH_STATE_SCROLLING;
    break;
    case MotionEvent.ACTION_CANCEL:
    case MotionEvent.ACTION_UP:
    mTouchState = TOUCH_STATE_REST;
    break;
    }
    return mTouchState != TOUCH_STATE_REST;
    }
    }
    测试程序布局:
    view plaincopy to clipboardprint?
    < ?xml version="1.0" encoding="utf-8"?>
    < com.yao_guet.test.ScrollLayout
    xmlns:android="http://schemas.android.com/apk/res/android"