Skip to content

Instantly share code, notes, and snippets.

@canujohann
Created January 27, 2016 02:25
Show Gist options
  • Select an option

  • Save canujohann/03e2cfafb4344ca6c6cc to your computer and use it in GitHub Desktop.

Select an option

Save canujohann/03e2cfafb4344ca6c6cc to your computer and use it in GitHub Desktop.

Revisions

  1. canujohann created this gist Jan 27, 2016.
    60 changes: 60 additions & 0 deletions observable-webview.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,60 @@
    # observable Webview

    > from http://stackoverflow.com/questions/14752523/how-to-make-a-scroll-listener-for-webview-in-android
    ```java
    public class ObservableWebView extends WebView
    {
    private OnScrollChangedCallback mOnScrollChangedCallback;

    public ObservableWebView(final Context context)
    {
    super(context);
    }

    public ObservableWebView(final Context context, final AttributeSet attrs)
    {
    super(context, attrs);
    }

    public ObservableWebView(final Context context, final AttributeSet attrs, final int defStyle)
    {
    super(context, attrs, defStyle);
    }

    @Override
    protected void onScrollChanged(final int l, final int t, final int oldl, final int oldt)
    {
    super.onScrollChanged(l, t, oldl, oldt);
    if(mOnScrollChangedCallback != null) mOnScrollChangedCallback.onScroll(l, t);
    }

    public OnScrollChangedCallback getOnScrollChangedCallback()
    {
    return mOnScrollChangedCallback;
    }

    public void setOnScrollChangedCallback(final OnScrollChangedCallback onScrollChangedCallback)
    {
    mOnScrollChangedCallback = onScrollChangedCallback;
    }

    /**
    * Impliment in the activity/fragment/view that you want to listen to the webview
    */
    public static interface OnScrollChangedCallback
    {
    public void onScroll(int l, int t);
    }
    }
    ```

    ```java
    wv = (ObservableWebView) findViewById(R.id.scorllableWebview);
    wv.setOnScrollChangedCallback(new OnScrollChangedCallback(){
    public void onScroll(int l, int t){
    //Do stuff
    Log.d(TAG,"We Scrolled etc...");
    }
    });
    ```