当前位置:首页 > 谈天说地

Android WebView如何判断是否滚动到底部

34资源网2022-01-20537
目录
  • 场景:
  • 分析:
  • 实现:
  • 总结

场景:

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

看完文章,还可以扫描下面的二维码下载快手极速版领4元红包

快手极速版二维码

快手极速版新人见面礼

除了扫码领红包之外,大家还可以在快手极速版做签到,看视频,做任务,参与抽奖,邀请好友赚钱)。

邀请两个好友奖最高196元,如下图所示:

快手极速版邀请好友奖励

扫描二维码推送至手机访问。

版权声明:本文由34楼发布,如需转载请注明出处。

本文链接:https://www.34l.com/post/5919.html

分享给朋友:

相关文章

一千元如何创业?一千元创业项目有吗?

一千元如何创业?一千元创业项目有吗?

一千元如何创业?有的人想用一千元创业,说实话,现实当中一千元根本创不了业,你买器材都不够,更别提创业了。当然,如果你在网络上面,那还是有可能创业的。因为现在网上有很多可以投资1000元左右创业的项目。下面,小编就给大家分享三个这样的创业项目…

适合普通人做的小本创业点子

适合普通人做的小本创业点子

适合普通人做的小本创业生意有什么??随着零售行业的兴起,小型超市便利店生意成为创业者首选的项目之一,主要原因在于:投入资金小、回笼快,不需要太大的现金流来支撑、一年半左右就能回本。这对于拥有一部分闲置资金,想创业的投资者来说简直是很好的创业…

koko卡卡拖地机器人家用全自动擦地机推荐

koko卡卡拖地机器人家用全自动擦地机推荐

koko卡卡智能拖地机是东莞市宝联电子科技有限公司旗下产品,隶属于香港概念数码科技有限公司,其主要研发机器人吸尘器等高科技领域家居产品,想知道卡卡智能拖地机好用吗,看看下面是网友使用koko卡卡智能拖地机的相关介绍,希望对大家有所帮助。1、…

哪家的云主机好(国内五大云主机服务商)

哪家的云主机好(国内五大云主机服务商)

导言:博睿数据(股票代码688229)十余年专注APM领域,已为超过2000余家大型企业提供专业数据服务。依托先进的测评技术及丰富的行业经验,博睿宏远倾力打造了一个公开透明的性能测评栏目——【Bonree指数】。该栏目致力于呈现各行业的整体…

裁员,爱奇艺穿越生死线

裁员,爱奇艺穿越生死线

图源:摄图网 编者按:本文来自微信公众号霞光社(ID:Globalinsights)),作者:麻吉、郭照川、韩夏,创业邦经授权转载 霞光社从多位爱奇艺员工处了解到,本轮裁员罕见覆盖了爱奇艺所有部门,从影业、IP、游戏、电商部门,甚至到经纪公…

windows系统还原点怎么用(电脑设置还原点的方法)

windows系统还原点怎么用(电脑设置还原点的方法)

设置系统还原点可以恢复我们在Win10计算机中所需的状态,并确保系统继续使用而无需重新加载。但对于系统还原,许多小伙伙伴不知道如何设置还原点,并且特定步骤与每个人共享。 Win10计算机设置恢复点 1.右键单击桌面上此计算机,右键单击菜单…