Exemplo n.º 1
0
  public void setToScreen(int whichScreen) {
    whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1));
    mCurScreen = whichScreen;
    scrollTo(whichScreen * getWidth(), 0);

    if (mOnViewChangeListener != null) {
      mOnViewChangeListener.OnViewChange(mCurScreen);
    }
  }
Exemplo n.º 2
0
  public void scrollToScreen(int whichScreen) {
    // get the valid layout page
    whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1));
    if (getScrollX() != (whichScreen * getWidth())) {
      final int delta = whichScreen * getWidth() - getScrollX();
      mScroller.startScroll(getScrollX(), 0, delta, 0, Math.abs(delta) * 1); // 持续滚动时间 以毫秒为单位
      mCurScreen = whichScreen;
      invalidate(); // Redraw the layout

      if (mOnViewChangeListener != null) {
        mOnViewChangeListener.OnViewChange(mCurScreen);
      }
    }
  }
Exemplo n.º 3
0
  // 滑动到屏幕
  public void snapToScreen(int whichScreen) {
    // 获得有效的页面
    whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1));
    if (getScrollX() != (whichScreen * getWidth())) {
      final int delta = whichScreen * getWidth() - getScrollX();
      mScroller.startScroll(getScrollX(), 0, delta, 0, Math.abs(delta) * 2);

      mCurScreen = whichScreen;
      invalidate(); // 重绘布局
      if (mOnViewChangeListener != null) {
        mOnViewChangeListener.OnViewChange(mCurScreen);
      }
    }
  }