Android自定义View - ScrollView实时获取滚动距离

一、环境

  1. 安卓系统:4.2
  2. 操作系统:Win 8.1
  3. 工具:Android Studio

二、自定义 ScrollView

ScrollView 里有一个 onScrollChange 方法,滚动的时候会调用,但它是 protected 权限,所以不能调用,需要重写

public class MyScrollView extends ScrollView {    
        private OnScrollListener onScrollListener;    
        private int scrollY;    

        public MyScrollView(Context context) {        
            this(context, null);    
        }    
    
        public MyScrollView(Context context, AttributeSet attrs) {        
            this(context, attrs, 0);    
        }    

        public MyScrollView(Context context, AttributeSet attrs, int defStyle) {        
            super(context, attrs, defStyle);    
        }    

        /**     
          * 设置滚动接口     
          * @param onScrollListener     
          */    
        public void setOnScrollListener(OnScrollListener onScrollListener) {        
            this.onScrollListener = onScrollListener;    
        }    

        @Override    
        protected void onScrollChanged(int l, int t, int oldl, int oldt) {        
            super.onScrollChanged(l, t, oldl, oldt);        
            scrollY = getScrollY();        
            if (onScrollListener != null) {            
                onScrollListener.onScroll(scrollY);        
            }    
        }    

        public interface OnScrollListener{        
            /**         
              * 回调方法, 返回MyScrollView滑动的Y方向距离         
              * @param scrollY            、         
              */        
            public void onScroll(int scrollY);    
        }
}

你可能感兴趣的:(Android自定义View - ScrollView实时获取滚动距离)