美文网首页android仿薄荷卷尺系列文章
1.仿薄荷卷次控件之水平滑动控件HorizontalScroll

1.仿薄荷卷次控件之水平滑动控件HorizontalScroll

作者: 真胖大海 | 来源:发表于2017-11-01 11:07 被阅读23次

    本篇文章属于android仿薄荷卷尺系列文章

    1. 代码地址
      HorizontalScroll
    2. HorizontalScroll控件作用
      一个经典的根据根据手势滑动和通过scrollBy/to 来实现滑动的控件。
    3. Scroller.fling
        public void fling(int startX, int startY, int velocityX, int velocityY,
                int minX, int maxX, int minY, int maxY) ;
    
    • Scroll.fling要结合computeScroll使用
    
    ......
    
    case MotionEvent.ACTION_UP:
              mVelocityTracker.computeCurrentVelocity(1000);
                  float xvel=mVelocityTracker.getXVelocity(mPointActivtyId);
                  if(Math.abs(xvel)>ViewConfiguration.get(getContext()).getScaledMinimumFlingVelocity()) {
                      mFlingScroller.fling(
                              getScrollX(), getScrollY(),
                              -(int) xvel, 0,//数据设为计算出的速度的相反值
                              Integer.MIN_VALUE, Integer.MAX_VALUE,
                              0, 0);
                  }
    
                  break;
    ......
    
      @Override
      public void computeScroll() {
          super.computeScroll();
          if (mFlingScroller.computeScrollOffset()) {
              int currX = mFlingScroller.getCurrX();
              scrollTo(currX, mFlingScroller.getCurrY());
              invalidate();//通知视图重绘
          }
      }
    

    4.注意点
    computeScroll()函数中要主动调动 invalidate()通知视图重绘

    相关文章

      网友评论

        本文标题:1.仿薄荷卷次控件之水平滑动控件HorizontalScroll

        本文链接:https://www.haomeiwen.com/subject/qhvwpxtx.html