Android WebView怎么判断是否滚动到底部
发表于:2024-09-25 作者:千家信息网编辑
千家信息网最后更新 2024年09月25日,这篇文章给大家分享的是有关Android WebView怎么判断是否滚动到底部的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。场景:我们有时候需要弹一些必读公告,但是呢可能会
千家信息网最后更新 2024年09月25日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安全错误
数据库的锁怎样保障安全
网约车app软件开发
南昌创润网络技术有限公司
投影互动软件开发
丹东市网络安全中心
服务器a标签
数据库系统采用锁技术的目的
数据库模块怎么设置
网络安全文案200字
服务器电源有什么作用
网络安全法中关于实名制
服务器网络优化
网络安全生存现状
sql数据库应用技术答案
有效的网络安全防御体系
葫芦岛缤果网络技术有限公司
咪付网络技术有限公司
中学生网络安全防范教育
软件开发公司的经营组合
epo欧洲专利数据库
服务器是长连接还是短连接
珠海有软件开发公司吗
腾讯云服务器退出连接
棋牌软件开发用什么电脑
共筑网络安全
网络安全攻防演练表情包
上海网络技术咨询服务收费
sql数据库应用技术答案
太仓市网络安全技能竞赛试题
学校网络安全分属哪个部门
信息网络和网络安全自查