美文网首页android仿薄荷卷尺系列文章
3.1仿薄荷卷次控件之限制HorizontalScroll完成后

3.1仿薄荷卷次控件之限制HorizontalScroll完成后

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

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

    滑动完成过完后要调整偏移量,使偏移量刚好为oneStep的整数倍

    滑动完成过完后要调整偏移量,使偏移量刚好为oneStep的整数倍

    完整代码

    1. 判断Scroll.fling滑动是否完成

    方法:在ACTION_UP后,postDelay一个Runnable,在Runnabel中,通过判断scrollx是否在变化,如果scrollX没有变化,就证明已经滑动完成。

    
    ...
      case MotionEvent.ACTION_UP:
        ...
        sartAjust();
        ...
    ...
    
    Runnable adjustRunnable = new Runnable() {
         @Override
         public void run() {
             int scrollX = getScrollX();
             if (currentScrollX == scrollX) {//滑动结束
               调整代码
             } else {//继续检测
                 sartAjust();
             }
         }
     };
    
     private void sartAjust() {
         currentScrollX = getScrollX();
         postDelayed(adjustRunnable, CHECKTIME);
     }
    

    2. 调整偏移距离的计算代码

    image
    
    int more = scrollX % oneStep;//多余距离
    int remain=oneStep * (scrollX / Math.abs(scrollX))-more;//剩余距离
    if (Math.abs(more) > oneStep / 2) {
     scrollBy(remain, 0);
    } else {
      scrollBy(-more, 0);
    }
         
    

    相关文章

      网友评论

        本文标题:3.1仿薄荷卷次控件之限制HorizontalScroll完成后

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