diff --git a/README.md b/README.md index 98bb315..65ed022 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,17 @@ public class MyActivity extends Activity implements AdvancedWebView.Listener { mWebView = (AdvancedWebView) findViewById(R.id.webview); mWebView.setListener(this, this); + + mWebView.setOnScrollChangeListener(new View.OnScrollChangeListener() { + @Override + public void onScrollChange(View view, int i, int i1, int i2, int i3) { + Log.d("scrollX", String.valueOf(i)) + Log.d("scrollY", String.valueOf(i1)) + Log.d("oldScrollX", String.valueOf(i2)) + Log.d("oldScrollY", String.valueOf(i3)) + } + }); + mWebView.loadUrl("http://www.example.org/"); // ... @@ -137,6 +148,17 @@ public class MyFragment extends Fragment implements AdvancedWebView.Listener { mWebView = (AdvancedWebView) rootView.findViewById(R.id.webview); mWebView.setListener(this, this); + + mWebView.setOnScrollChangeListener(new View.OnScrollChangeListener() { + @Override + public void onScrollChange(View view, int i, int i1, int i2, int i3) { + Log.d("scrollX", String.valueOf(i)) + Log.d("scrollY", String.valueOf(i1)) + Log.d("oldScrollX", String.valueOf(i2)) + Log.d("oldScrollY", String.valueOf(i3)) + } + }); + mWebView.loadUrl("http://www.example.org/"); // ... diff --git a/Source/library/src/main/java/im/delight/android/webview/AdvancedWebView.java b/Source/library/src/main/java/im/delight/android/webview/AdvancedWebView.java index 9488c7e..3ad637d 100644 --- a/Source/library/src/main/java/im/delight/android/webview/AdvancedWebView.java +++ b/Source/library/src/main/java/im/delight/android/webview/AdvancedWebView.java @@ -142,6 +142,34 @@ protected void setListener(final Listener listener, final int requestCodeFilePic mListener = listener; mRequestCodeFilePicker = requestCodeFilePicker; } + + @Override + protected void onScrollChanged(int l, int t, int oldl, int oldt) { + super.onScrollChanged(l, t, oldl, oldt); + if (onScrollChangeListener != null) { + onScrollChangeListener.onScrollChange(getContext(), l, t, oldl, oldt); + } + } + + public void setOnScrollChangeListener(OnScrollChangeListener onScrollChangeListener) { + this.onScrollChangeListener = onScrollChangeListener; + } + + public OnScrollChangeListener getOnScrollChangeListener() { + return onScrollChangeListener; + } + + public interface OnScrollChangeListener { + /** + * Called when the scroll position of a view changes. + * @param v The view whose scroll position has changed. + * @param scrollX Current horizontal scroll origin. + * @param scrollY Current vertical scroll origin. + * @param oldScrollX Previous horizontal scroll origin. + * @param oldScrollY Previous vertical scroll origin. + */ + void onScrollChange(Context v, int scrollX, int scrollY, int oldScrollX, int oldScrollY); + } @Override public void setWebViewClient(final WebViewClient client) {