/**
* 想要咋实际使用中监听ScrollView的滑动状态
* 系统其实在api23提供了一个setOnScrollListener方法来监听view的滑动,只是不能向下兼容,
* public void setOnScrollChangeListener(OnScrollChangeListener l) {
* getListenerInfo().mOnScrollChangeListener = l;
* }
*
* 所以,暂时无法使用,只能利用它自身的onScrollChanged来做文章了,自已实现一个吧
*/
public class ObservableScrollView extends ScrollView {
private OnScrollChangeListener scrollViewListener = null;
public ObservableScrollView(Context context) {
super(context);
}
public ObservableScrollView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public ObservableScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setScrollViewListener(OnScrollChangeListener onScrollChangeListener) {
this.scrollViewListener = onScrollChangeListener;
}
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
super.onScrollChanged(x, y, oldx, oldy);
if (scrollViewListener != null) {
scrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
}
}
public interface OnScrollChangeListener {
void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy);
}
}
这样就可以了