Red de conocimiento de abogados - Derecho de sociedades - Android implementa el deslizamiento hacia la izquierda y hacia la derecha, y hay un punto debajo. ¿Es viewflipper?

Android implementa el deslizamiento hacia la izquierda y hacia la derecha, y hay un punto debajo. ¿Es viewflipper?

ViewPager se puede implementar, pero si es un número fijo, no cambiará. Se puede realizar directamente a través de un diseño personalizado y es muy conveniente de usar.

/**

* Imita WorkSapce en Launcher, ¿puedes deslizarte hacia la izquierda y hacia la derecha para cambiar de pantalla? *

* Blog de @author Yao.GUET: puteScroll ()

{

if (mScroller.computeScrollOffset())

{

scrollTo(mScroller.getCurrX(), mScroller. getCurrY( ));

postInvalidate();

}

}

@Override

público booleano onTouchEvent(evento MotionEvent)

{

if (!StaticVariable.controlFlag)

{

return super.onTouchEvent(evento);

p>

}

if (mVelocityTracker == null)

{

mVelocityTracker = VelocityTracker.obtain();

}

mVelocityTracker.addMovement(evento);

final int action = event.getAction();

final float x = event.getX ();

// final float y = event.getY();

cambiar (acción)

{

caso MotionEvent .ACTION_DOWN:

if (!mScroller.isFinished())

{

mScroller.abortAnimation();

}

mLastMotionX = x;

break;

case MotionEvent.ACTION_MOVE:

int deltaX = (int)(mLastMotionX - x);

mLastMotionX = x;

scrollBy(deltaX, 0);

break;

case MotionEvent.ACTION_UP:

velo final de VelocityTracker

cityTracker = mVelocityTracker;

velocidadTracker.computeCurrentVelocity(1000);

int velocidadX = (int)velocityTracker.getXVelocity();

if (velocityX > SNAP_VELOCITY && mCurScreen > 0)

{

// Lanza lo suficiente para moverte hacia la izquierda

snapToScreen(mCurScreen - 1);

}

else if (velocityX < -SNAP_VELOCITY && mCurScreen < getChildCount() - 1)

{

// Lanza lo suficiente para moverte hacia la derecha

snapToScreen(mCurScreen + 1);

}

else

{

snapToDestination();

}

if (mVelocityTracker != null)

{

mVelocityTracker.recycle();

mVelocityTracker = null;

}

mTouchState = TOUCH_STATE_REST;

descanso;

caso MotionEvent.ACTION_CANCEL:

mTouchState = TOUCH_STATE_REST;

romper;

}

devolver verdadero;

}

@Override

público booleano onInterceptTouchEvent(MotionEvent ev)

{

if (!StaticVariable.controlFlag)

{

return super.onInterceptTouchEvent(ev)

;

}

if (Configure.isMove)

return false;//Interceptar distribución a controles secundarios

final int action = ev.getAction();

if ((action == MotionEvent.ACTION_MOVE) && (mTouchState != TOUCH_STATE_REST))

{

devuelve verdadero;

}

final float x = ev.getX();

// final float y = ev.getY();

cambiar (acción)

{

caso MotionEvent.ACTION_MOVE:

final int xDiff = (int)Math.abs(mLastMotionX - x);

if (xDiff > mTouchSlop)

{

mTouchState = TOUCH_STATE_SCROLLING;

}

descanso;

caso MotionEvent.ACTION_DOWN:

mLastMotionX = x;

// mLastMotionY = y;

mTouchState = mScroller.isFinished() ? ;

descanso;

caso MotionEvent.ACTION_CANCEL:

caso MotionEvent.ACTION_UP:

mTouchState = TOUCH_STATE_REST;

break;

}

return mTouchState != TOUCH_STATE_REST;

}

public void setPageListener(PageListener pageListener)

{

this.pageListener = pageListener;

}

interfaz pública PageListener

{

página vacía (página int);

>

}

}