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

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

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

场景:

我们有时候需要弹一些必读公告,但是呢可能会要去你看完之后才可以关掉,所以就需要滚动到底部才显示关闭按钮,而公告什么的往往又是基于富文本的,那么在展示在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

分享给朋友:

相关文章

​京东钢镚怎么使用?教你用京东钢镚的支付的方法教程

​京东钢镚怎么使用?教你用京东钢镚的支付的方法教程

京东钢镚怎么使用?很多朋友看到自己的京东钱包里面有京东钢镚,不知道京东钢镚怎么使用,在使用京东钢镚之前,一定要要先了解清楚京东钢镚使用条件有哪些,下面开淘小编来介绍一下京东钢镚怎么使用?如何用你的京东钢镚支付购买商品的方法教程分享。…

苹果X快充PD充电器推荐,现在下载还有优惠券可以领呢

苹果X快充PD充电器推荐,现在下载还有优惠券可以领呢

现在有很多人用的是苹果手机,因为平时有些人不注意使用方式或者使用充电器比较频繁导致损坏。大家都知道苹果手机和安卓手机的充电器是不一样的,不能用安卓手机的充电器充苹果手机。所以,大家如果苹果手机充电器损坏了,需要购买的话就要买个专门的苹果手机…

抖音上热门技巧有哪些(dou+投粉丝量还是点赞量)

抖音上热门技巧有哪些(dou+投粉丝量还是点赞量)

前不久,“越来和锅锅”发布了自己的第一条抖音视频,结果该视频一天的播放量达到了2581万,至今获赞205.7万。可见,选择适合自己的视频表现方式比努力更重要。 (图片来源:抖音APP) 抖音如何上热门,一直是小伙伴们想要了解的答案。 如果…

联想乐pad平板电脑有哪些版本(平板电脑排行榜性价比)

联想乐pad平板电脑有哪些版本(平板电脑排行榜性价比)

对于安卓平板电脑行业而言,创新相对来说比较困难。一方面,安卓系统的功能早已经被各方挖掘殆尽;另一方面,从整个平板电脑行业大环境来看,iPad阵营坚固的护城河也影响着安卓阵营的创新欲望。再加上时下热衷于投身平板电脑行业的品牌本来就不像以往那么…

物联卡怎么激活上网(联通物联卡开通全教程)

物联卡怎么激活上网(联通物联卡开通全教程)

最近一段时间,小编看到公众号后台有好多朋友留言,其中有一部分都是问“物联卡激活”的问题,今天,瞅个空,给大家介绍一下关于物联卡激活的问题。 接下来是对大家介绍的激活流程,请大家参考!首先要注意以下几条内容!!! 1、卡号不在说明书上,请在收…

小红书回应被曝存未成年人性暗示(部分内容已被回查处理)

小红书回应被曝存未成年人性暗示(部分内容已被回查处理)

小红书被曝存未成年人性暗示近日,媒体报道称,小红书涉嫌泄露未成年隐私及内容审核不严问题。 对此,小红书对报道提及审核漏放情况致歉,并透露平台将于近期启动新一轮未成年治理专项。对于报道中提及的部分内容,小红书表示在平台此前的未成年专项回查中已…