有些时候我们需要监听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
# webview
# 监听
# webview滑动监听
# 监听上下滑动
# Android WebView的详解及实例
# Android 解决WebView无法上传文件的问题
# Android WebView自定义长按选择实现收藏/分享选中文本功能
# Android WebView 不支持 H5 input type="file" 解决方法
# Android 5.1 WebView内存泄漏问题及快速解决方法
# Android WebView或手机浏览器打开连接问题解决办法总结
# Android webview使用方法总结
# 重写
# 则会
# 回调
# 大家多多
# 发现有
# 底端
# NewWebView
# OnScrollChangeListener
# private
# extends
# attrs
# super
# Override
# AttributeSet
# mOnScrollChangeListener
# Context
相关文章:
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
建站主机数据库如何配置才能提升网站性能?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
专业公司网站制作公司,用什么语言做企业网站比较好?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
威客平台建站流程解析:高效搭建教程与设计优化方案
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何在建站之星绑定自定义域名?
建站主机功能解析:服务器选择与快速搭建指南
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
香港服务器网站卡顿?如何解决网络延迟与负载问题?
教学论文网站制作软件有哪些,写论文用什么软件
?
西安大型网站制作公司,西安招聘网站最好的是哪个?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何通过VPS建站实现广告与增值服务盈利?
如何正确下载安装西数主机建站助手?
Swift中循环语句中的转移语句 break 和 continue
建站之星展会模版如何一键下载生成?
网站制作公司排行榜,四大门户网站排名?
教程网站设计制作软件,怎么创建自己的一个网站?
制作旅游网站html,怎样注册旅游网站?
公司网站的制作公司,企业网站制作基本流程有哪些?
山东网站制作公司有哪些,山东大源集团官网?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
如何快速搭建虚拟主机网站?新手必看指南
如何确认建站备案号应放置的具体位置?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何选择高效可靠的多用户建站源码资源?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
如何快速搭建安全的FTP站点?
建站主机无法访问?如何排查域名与服务器问题
,怎么用自己头像做动态表情包?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
如何在云指建站中生成FTP站点?
如何快速搭建个人网站并优化SEO?
建站org新手必看:2024最新搭建流程与模板选择技巧
ppt制作免费网站有哪些,ppt模板免费下载网站?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
公司网站设计制作厂家,怎么创建自己的一个网站?
如何在阿里云服务器自主搭建网站?
购物网站制作公司有哪些,哪个购物网站比较好?
表情包在线制作网站免费,表情包怎么弄?
如何在云虚拟主机上快速搭建个人网站?
宝塔面板如何快速创建新站点?
长沙做网站要多少钱,长沙国安网络怎么样?
*请认真填写需求信息,我们会在24小时内与您取得联系。