public class ObservableWebView extends WebView {
private OnScrollChangedCallback onScrollChangedCallback;
public void setOnScrollChangedCallback(OnScrollChangedCallback onScrollChangedCallback) {
this.onScrollChangedCallback = onScrollChangedCallback;
}
public ObservableWebView(Context context) {
super(context);
}
public ObservableWebView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
public ObservableWebView(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
if (onScrollChangedCallback != null) {
onScrollChangedCallback.onScroll(l - oldl, t - oldt);
}
}
public interface OnScrollChangedCallback {
public void onScroll(int dx, int dy);
}
}
webview.setOnScrollChangedCallback(new ObservableWebView.OnScrollChangedCallback() {
@Override
public void onScroll(int dx, int dy) {
}
});