千家信息网

Android WebView怎么判断是否滚动到底部

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家分享的是有关Android WebView怎么判断是否滚动到底部的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。场景:我们有时候需要弹一些必读公告,但是呢可能会
千家信息网最后更新 2026年10月31日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安全错误 数据库的锁怎样保障安全 互联网科技公司经营范围 互联网科技工作委员会主任 合肥互联网科技公司 善班互联网科技有限公司 广州善班互联网科技 齐家互联网科技有限公司 互联网科技公司有哪些 互联网科技咨询 上海亿帐通互联网科技 欧洲十大科技互联网公司 互联网5g黑科技有哪些 晋城互联网科技 工业互联网展湾科技股份有限公司 滨湖区互联网智能科技产品有哪些 南通创西澳互联网科技有限公司 电子商务与互联网科技的关系 上海创道互联网络科技有限公司 互联网与数字科技关系 神州科技互联网有限公司 互联网科技创业计划的风险分析 科技互联网项目 宜安科技 互联网金融 广州紫鲸互联网科技 互联网科技的未来发展 哈尔滨秒房互联网科技有限公司 互联网实体化科技化 互联网科技热点资讯 朱啸虎曾投资哪些互联网科技企业 互联网科技股为什么大涨 广州互联网高科技取餐柜
0