Android WebView怎么判断是否滚动到底部
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章给大家分享的是有关Android WebView怎么判断是否滚动到底部的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。场景:我们有时候需要弹一些必读公告,但是呢可能会
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
软件开发中模块设计原则是
英雄恢复数据库
文科考研软件开发
网络技术挑战赛提交的作品
网络安全每一层的协议
试衣服软件开发
软件开发java方向书籍
没有服务器管理权限
信息网络安全事件类别
大连智慧安全教育展馆软件开发
泉州直播带货软件开发
压缩包怎么传到服务器
自动化药房网络安全建设
oracle数据库se语句
大专学历能进网络安全工程师吗
网络安全属于什么颜色
杭州电脑软件开发教程
太原通用软件开发实习短期招聘
微博网络技术有限公司
软件开发的岗位设置
数据库没链接吗
网络技术都开什么课程
试衣服软件开发
网络安全的心的心得
上海软件开发的价格
网站服务器 安全证书
广州爱浦路网络技术北京
电脑设置ftp服务器
网络安全预警和处置制度
请使用数据库的存储过程