美文网首页
如何监听webview的滚动事件

如何监听webview的滚动事件

作者: 幻无名 | 来源:发表于2017-12-30 19:03 被阅读685次

一:自定义一个webview

package app.coolwhether.com.zhihudailynews.support;

import android.content.Context;
import android.util.AttributeSet;
import android.webkit.WebView;

/**
 * Created by kirito on 2017.12.30.
 */

public class EnhanceWebView extends WebView {
    private onScrollChangeCallback callback;

    public EnhanceWebView(Context context) {
        super(context);
    }

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

    public EnhanceWebView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

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

    public onScrollChangeCallback getOnScrollChangeCallback(){
        return callback;
    }

    public void setScrollChangeCallback(onScrollChangeCallback callback){
        this.callback = callback;
    }

    //设置回调借口,获取webview滑动的上下,左右距离差
    public static interface onScrollChangeCallback{
        public void onScroll(int dx,int dy);
    }
}

二:在webview使用的地方设置监听,实现上滑隐藏actionbar,下滑显示actionbar

mWebView.setScrollChangeCallback(new EnhanceWebView.onScrollChangeCallback() {
            @Override
            public void onScroll(int dx, int dy) {
                //Log.e(TAG, "onScroll: ---dy:"+dy );
                if (dy >= 3){//页面往下走隐藏actionbar
                    getSupportActionBar().hide();
                }else if (dy <= -3){//页面往上走,显示actionbar
                    getSupportActionBar().show();
                }

            }
        });

相关文章

网友评论

      本文标题:如何监听webview的滚动事件

      本文链接:https://www.haomeiwen.com/subject/hldngxtx.html