package io.bxbxbai.zhuanlan.widget;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.support.v4.widget.NestedScrollView;
import android.util.AttributeSet;
import android.widget.ScrollView;
import java.util.ArrayList;
import java.util.List;
/**
* Created by xuebin on 15/9/23.
*/
public class ObservableScrollView extends NestedScrollView {
private List<OnScrollListener> listenerList = new ArrayList<>();
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
public int computeVerticalScrollRange() {
return super.computeVerticalScrollRange();
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
for (OnScrollListener listener : listenerList) {
listener.onScroll(t - oldt);
}
}
public void addOnScrollListener(OnScrollListener listener) {
listenerList.add(listener);
}
public interface OnScrollListener {
void onScroll(int distance);
}
}