Android中解决WebView上下滑动监听问题
程序员文章站
2022-10-24 17:15:32
有些时候我们需要监听webview的滚动事件,但webview没有直接监听滑动的方法,看webview的源码则会发现有一个protected void onscrollch...
有些时候我们需要监听webview的滚动事件,但webview没有直接监听滑动的方法,看webview的源码则会发现有一个protected void onscrollchanged(int l, int t, int oldl, int oldt)方法。
这个方法。是受到保护的所以我们无法直接使用,所以我们写一个加强的webview,重写onscrollchanged方法并利用接口回调。
public class newwebview extends webview{ private onscrollchangelistener monscrollchangelistener; public newwebview(context context, attributeset attrs) { super(context, attrs); } @override protected void onscrollchanged(int l, int t, int oldl, int oldt) { super.onscrollchanged(l, t, oldl, oldt); // webview的高度 float webcontent = getcontentheight() * getscale(); // 当前webview的高度 float webnow = getheight() + getscrolly(); if (math.abs(webcontent - webnow) < 1) { //处于底端 monscrollchangelistener.onpageend(l, t, oldl, oldt); } else if (getscrolly() == 0) { //处于顶端 monscrollchangelistener.onpagetop(l, t, oldl, oldt); } else { monscrollchangelistener.onscrollchanged(l, t, oldl, oldt); } } public void setonscrollchangelistener(onscrollchangelistener listener) { this.monscrollchangelistener = listener; } public interface onscrollchangelistener { public void onpageend(int l, int t, int oldl, int oldt); public void onpagetop(int l, int t, int oldl, int oldt); public void onscrollchanged(int l, int t, int oldl, int oldt); } }
使用:
public class newsactivity extends appcompatactivity { private newswebview mwebview; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_news); mwebview = (newswebview) findviewbyid(r.id.web_view); mwebview.setonscrollchangelistener(new newswebview.onscrollchangelistener() { @override public void onpageend(int l, int t, int oldl, int oldt) { logs.d("已经到达地端"); } @override public void onpagetop(int l, int t, int oldl, int oldt) { logs.d("已经到达顶端"); } @override public void onscrollchanged(int l, int t, int oldl, int oldt) { } });
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题
-
Android中解决WebView上下滑动监听问题
-
android ViewPager嵌套WebView滑动冲突问题解决
-
Android中解决WebView上下滑动监听问题
-
Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题
-
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法_javascript技巧
-
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法_javascript技巧