Android WebView怎么判断是否滚动到底部
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章给大家分享的是有关Android WebView怎么判断是否滚动到底部的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。场景:我们有时候需要弹一些必读公告,但是呢可能会
千家信息网最后更新 2025年02月23日Android WebView怎么判断是否滚动到底部
这篇文章给大家分享的是有关Android WebView怎么判断是否滚动到底部的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
场景:
我们有时候需要弹一些必读公告,但是呢可能会要去你看完之后才可以关掉,所以就需要滚动到底部才显示关闭按钮,而公告什么的往往又是基于富文本的,那么在展示在Android上时就要用到WebView,基于这个要求就有了判断 WebView 判断是否滚动到底部。
分析:
要判断是否到底部那么我们先来分析有哪几种情况,当html文档加载到WebView后会有一下两种情况。
WebView里的html内容没有填充满,就是无滚动条情况。html内容的高度比WebView控件高,这时候就会有滚动条,即有滚动条
对于情况1,没有滚动条我们直接显示关闭按钮就可,但对于第二种有滚动条情况就需要计算高度即:html高度 = WebView高度 + 滚动条长度 那么这时就可判断为滚动条到达了底部
实现:
html高度 <= WebView高度 + 滚动条长度 即可视为到达底部
注意:必须要控件初始化好后去获取高度,不然获取的高度是0
以下是实现
x5WebView?.let { it.webViewClient = object : WebViewClient() { override fun onPageFinished( view: WebView, url: String ) { super.onPageFinished(view, url) postSafeDelayed(1000) { loading_pb.visibility = View.GONE } //页面加载完判断是否到底部逻辑 view.post { view.measure(0, 0) val htmlContentHeight: Int = view.getMeasuredHeight() val viewHeight: Int = view.getHeight() //如果html高度小于控件高度,那么说明一屏可以展示下直接显示关闭按钮 if(htmlContentHeight <= viewHeight){ // TODO 显示关闭按钮 }else{ //这里说明有滚动条,就需要监听滚动事件 view?.setOnCustomScrollChangedListener(object : WebView.CustomScrollChangeListener{ override fun onScrollChange( scrollX: Int, scrollY: Int, oldScrollX: Int, oldScrollY: Int ) { Timber.w("setOnCustomScrollChangedListener 滚动底部,html高度:${htmlContentHeight},scrollY:${scrollY}") //已经处于底端 if(htmlContentHeight - (viewHeight + scrollY) <= 0){ Timber.w("setOnCustomScrollChangedListener 到达底部") //TODO 到达底部 } } }) } } } } }}
以上就是实现,WebView.CustomScrollChangeListener这个事件是自己在WebView上定义的,监听的是WebView的onScrollChanged方法下的自定义监听
感谢各位的阅读!关于"Android WebView怎么判断是否滚动到底部"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
高度
底部
情况
内容
按钮
控件
监听
事件
公告
就是
更多
篇文章
长度
分析
不错
实用
又是
场景
文本
文档
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
新乡六八网络技术有限公司
北京路客互联网科技有限
软件开发难还是复杂
方舟服务器怎么上管理员
计算机与网络安全考试重点
移动终端软件开发技术是啥
茂名通讯软件开发零售价
软件开发最重要的是找工作
弑神网络安全
sql 定义数据库
数据库访问层命名规范
配置文件改成数据库
江门市大拇哥网络技术
哪个大学网络安全厉害
海康平台管理服务器作用
互联网科技类营业执照
境内企业委托境外软件开发
网络技术的市值
服务器环境是指什么
小米 数据库异常
雪茄数据库
中山软件开发公司多吗
软件开发上市流程
富通天下 数据库
互联网科技个性化战略
小程序获取云数据库图片
瑞庭网络技术济南
数据库怎么样算登录成功
互联网科技类营业执照
软件开发会p