scrollview的滑动监听(自定义)

来源:互联网 发布:c语言编译器初学者 编辑:程序博客网 时间:2024/05/01 19:45

   前几天做项目用到了scrollView的滑动监听,当时用了

goodsScroll.setOnScrollChangeListener(new View.OnScrollChangeListener()

在android 5.1.1的板子上用着是好的,但今天在android 4.4的板子上就会崩。上网查了一下资料,setOnScrollChangeListener是在API23上用的,不向下兼容。网上的解决方法是:

自定义一个scrollView,写一个接口,把scrollView的onScrollChanged()方法暴露出去:

public class ObservableScrollView extends ScrollView {    private OnScrollChangeListener scrollChangeListener = null;    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);    }    public void setScrollViewListener(OnScrollChangeListener onScrollChangeListener){        this.scrollChangeListener = onScrollChangeListener;    }    @Override    protected void onScrollChanged(int x,int y,int oldx,int oldy){        super.onScrollChanged(x,y,oldx,oldy);        if(scrollChangeListener != null){            scrollChangeListener.onScrollChanged(this,x,y,oldx,oldy);        }    }    public interface OnScrollChangeListener{        void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy);    }}
在页面上调用 :

goodsScroll.setScrollViewListener(new ObservableScrollView.OnScrollChangeListener() {    @Override    public void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy) {            }});

0 0
原创粉丝点击