zoukankan      html  css  js  c++  java
  • Android 监听ScrollView的滑动

    我们需要监听ScroView的滑动情况,比如滑动了多少距离,是否滑到布局的顶部或者底部。可惜的是SDK并没有相应的方法,不过倒是提供了一个 

     protected void onScrollChanged(int l, int t, int oldl, int oldt) 

    显然这个方法是不能被外界调用的,因此就需要把它暴露出去,解决方式就是写一个接口

    /**
     * Created by 刘楠 on 2016/8/21 0021.17:24
     */
    public interface ScrollViewListener {
    
        void onScrollChanged(ObservableScrollView observableScrollView,int x,int y ,int oldx, int oldy);
    }

    然后重写ScrollView类,给它提供上面写的回调接口

    package com.liu.titlealpha.view;
    
    import android.content.Context;
    import android.util.AttributeSet;
    import android.widget.ScrollView;
    
    /**
     * Created by 刘楠 on 2016/8/21 0021.17:23
     */
    public class ObservableScrollView extends ScrollView {
    
    
        private ScrollViewListener mScrollViewListener=null;
    
        public void setScrollViewListener(ScrollViewListener scrollViewListener) {
            mScrollViewListener = scrollViewListener;
        }
    
        public ObservableScrollView(Context context) {
            super(context);
        }
    
        public ObservableScrollView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public ObservableScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
    
        @Override
        protected void onScrollChanged(int x, int y, int oldx, int oldy) {
            super.onScrollChanged(x, y, oldx, oldy);
            if (mScrollViewListener != null) {
                mScrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
            }
        }
    }

    布局时,用重写的这个ScrollView

  • 相关阅读:
    POJ2406【KMP-next数组】
    POJ2752【KMP-next数组含义】
    POJ3696【欧拉函数+欧拉定理】
    POJ3692【二分匹配】
    POJ3697【BFS】
    CodeForces599D【数学】
    CodeForces599C【贪心】
    HDU1829【种类并查集】
    HDU3038【种类并查集】
    POJ1182【种类并查集】
  • 原文地址:https://www.cnblogs.com/liunanjava/p/5793151.html
Copyright © 2011-2022 走看看