Android WebView怎么判断是否滚动到底部
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章给大家分享的是有关Android WebView怎么判断是否滚动到底部的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。场景:我们有时候需要弹一些必读公告,但是呢可能会
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
延庆区专业软件开发多少钱
阿里云数据库跑公网安全吗
网络安全法是哪年定的
深圳庐山互联网科技
数据库如何根据行数删除改行
数据库md5解密
网络安全与管控
数据库系统概述作业
万维数采仪服务器
大庆一岱互联网科技有限公司
软件开发项目进度解决表
高峰互联网科技有限公司
超微服务器主板针脚
手机网页用什么软件开发
数据库定义元组变量
工行软件开发 社招
darc数据库
dna数据库对比原理
gmail的发件服务器
共享服务器管理程序
计算网络安全ppt
如何删除数据库系统
河南科技大学互联网项目
新乡行者网络技术
数据库中表示查询的关键字
哪里学软件开发专业
杭州仕佳网络技术怎么样
连云港私有服务器厂商
数据库中s b
数据库定义元组变量