欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android ScrollView取消惯性滚动的方法

程序员文章站 2022-05-07 11:41:13
scrollview中惯性滚动的效果,想让这个scrollview慢一点滑动或者接近drag(拖拽)操作,就提出了添加阻尼的说法。只要重新fling方法即可,将veloci...

scrollview中惯性滚动的效果,想让这个scrollview慢一点滑动或者接近drag(拖拽)操作,就提出了添加阻尼的说法。只要重新fling方法即可,将velocity值极至缩小。

实例如下:

public class customhorizontalscrollview extends horizontalscrollview {
  private context context;
  private scrollviewlistenner listenner;
  private customhorizontalscrollview currentview;

  public customhorizontalscrollview(context context) {
    super(context);
    // todo auto-generated constructor stub
    this.context = context;
  }

  public customhorizontalscrollview(context context, attributeset attrs) {
    super(context, attrs);
    // todo auto-generated constructor stub
    this.context = context;
  }

  public customhorizontalscrollview(context context, attributeset attrs,
                   int defstyleattr) {
    super(context, attrs, defstyleattr);
    // todo auto-generated constructor stub
    this.context = context;
  }

  @override
  public boolean ontouchevent(motionevent ev) {
    // todo auto-generated method stub
    currentview = this;
    return super.ontouchevent(ev);
  }

  @override
  protected void onscrollchanged(int l, int t, int oldl, int oldt) {
    // todo auto-generated method stub
    if (null != listenner) {
      this.listenner.onscrollchanged(currentview, l, t, oldl, oldt);
    }
    super.onscrollchanged(l, t, oldl, oldt);
  }

  public interface scrollviewlistenner {
    public void onscrollchanged(customhorizontalscrollview view, int l,
                  int t, int oldl, int oldt);
  }

  public void setscrollviewlistenner(scrollviewlistenner listenner) {
    this.listenner = listenner;
  }

  /**
  *
  *阻尼:1000为将惯性滚动速度缩小1000倍,近似drag操作。
  @override
  public void fling(int velocity) {
    super.fling(velocity / 1000);
  }
  */
}

以上这篇android scrollview取消惯性滚动的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。