返回顶部
首页 > 资讯 > 移动开发 >AndroidWebView如何判断是否滚动到底部
  • 559
分享到

AndroidWebView如何判断是否滚动到底部

2024-04-02 19:04:59 559人浏览 八月长安
摘要

目录场景:分析:实现:总结场景: 我们有时候需要弹一些必读公告,但是呢可能会要去你看完之后才可以关掉,所以就需要滚动到底部才显示关闭按钮,而公告什么的往往又是基于富文本的,那么在展示

场景:

我们有时候需要弹一些必读公告,但是呢可能会要去你看完之后才可以关掉,所以就需要滚动到底部才显示关闭按钮,而公告什么的往往又是基于富文本的,那么在展示在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如何判断是否滚动到底部的文章就介绍到这了,更多相关Android WebView滚动到底部内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: AndroidWebView如何判断是否滚动到底部

本文链接: https://lsjlt.com/news/163057.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • AndroidWebView如何判断是否滚动到底部
    目录场景:分析:实现:总结场景: 我们有时候需要弹一些必读公告,但是呢可能会要去你看完之后才可以关掉,所以就需要滚动到底部才显示关闭按钮,而公告什么的往往又是基于富文本的,那么在展示...
    99+
    2024-04-02
  • 移动端html5如何判断是否滚动到底部并且下拉加载
    小编给大家分享一下移动端html5如何判断是否滚动到底部并且下拉加载,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!如何判断滚动是否滚动到了底部首先要了解的知识 scrollHeight,c...
    99+
    2024-04-02
  • jQuery怎么判断网页是否已经滚动到浏览器底部
    这篇文章主要介绍jQuery怎么判断网页是否已经滚动到浏览器底部,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!有些需求中,需要当用户滚动到浏览器底部的时候,再加载新的内容。笔者在这里...
    99+
    2024-04-02
  • 怎么用jquery判断div滚动条到底部
    这篇“怎么用jquery判断div滚动条到底部”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用jquery判断div滚动...
    99+
    2023-07-04
  • js原生判断内容区域是否滚动到底部的示例分析
    小编给大家分享一下js原生判断内容区域是否滚动到底部的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!逻辑判断内容滚动到底需要知道的信息内容区域的真实高度(也就是滚动区域)滚动条距离...
    99+
    2024-04-02
  • 如何判断div滑动到底部的scroll
    小编给大家分享一下如何判断div滑动到底部的scroll,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实例如下所示:<!D...
    99+
    2024-04-02
  • jquery怎么判断滚动条滚到页面底部并执行事件
    本文小编为大家详细介绍“jquery怎么判断滚动条滚到页面底部并执行事件”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery怎么判断滚动条滚到页面底部并执行事件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-07-04
  • JS如何判断页面是否有滚动条
    这篇文章主要介绍JS如何判断页面是否有滚动条,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!为什么要判断滚动条判断滚动条的需求在弹窗插件中用的较多,因为弹窗大多会添加 overflow...
    99+
    2024-04-02
  • 判断 ScrollViewList 是否正在滚动详解
    目录正文方法一:Introspect方案一优点方案一缺点方法二:Runloop方案二优点方案二缺点方法三:PreferenceKey方案三优点方案三缺点IsScrolling总结正文...
    99+
    2024-04-02
  • vue如何监听滚动条到底部
    这篇文章主要介绍“vue如何监听滚动条到底部”,在日常操作中,相信很多人在vue如何监听滚动条到底部问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue如何监听滚动条到底部”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-04
  • JS如何判断滚动条的滚动方向
    小编给大家分享一下JS如何判断滚动条的滚动方向,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!以下代码实现判断页面的滚动条的滚动方...
    99+
    2024-04-02
  • 如何判断redis取到是否为空
    在Redis中,可以使用`GET`命令来获取指定的键的值。如果键存在并且有值,则返回对应的值;如果键不存在或者值为空,则返回`nil...
    99+
    2023-09-01
    redis
  • HTML5中滚动到底部的事件如何解决
    HTML5中滚动到底部的事件如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码实现:<html>    &nbs...
    99+
    2023-06-09
  • 如何用CSS实现平滑滚动到底部按钮
    如何用CSS实现平滑滚动到底部按钮在网页设计中,为了提升用户体验,我们经常需要添加一些便捷的功能,比如回到页面顶部或滚动到底部的按钮。本文将详细介绍如何使用CSS实现一个平滑滚动到底部按钮,并提供具体的代码示例。首先,我们需要在HTML中添...
    99+
    2023-11-21
    滚动 CSS 底部按钮
  • linux如何判断是否启动了php-fpm
    这篇文章主要介绍了linux如何判断是否启动了php-fpm的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux如何判断是否启动了php-fpm文章都会有所收获,下面我们一起来看看吧。在linux中,可以利...
    99+
    2023-06-30
  • java如何判断是否是url
    java使用正则表达式判断是否是url public static boolean isURL(String str){ //转换为小写 str = str.toLowerCase(); ...
    99+
    2017-04-25
    java url
  • Android如何判断是否Root
    这篇文章主要为大家展示了“Android如何判断是否Root”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android如何判断是否Root”这篇文章吧。为了照顾那些着急的同学,先直接给出结论:...
    99+
    2023-06-28
  • 如何判断网站是否受到DDoS攻击
    判断网站是否受到DDoS攻击的方法:1、使用ping命令进行判断,如果发现Ping超时或丢包严重,服务器也访问不了,则可能遭受了流量攻击;2、使用Netstat命令进行判断,如果网站访问突然非常缓慢或无法访问了,但还可以Ping通,则可能遭...
    99+
    2024-04-02
  • 如何判断你的MySQL到底是读多还是写多
    本篇内容主要讲解“如何判断你的MySQL到底是读多还是写多”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何判断你的MySQL到底是读多还是写多”吧!笨方法(不...
    99+
    2024-04-02
  • mysql如何判断是否是数字
    本篇内容介绍了“mysql如何判断是否是数字”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作