Android WebView如何判斷是否滾動(dòng)到底部
場(chǎng)景:
我們有時(shí)候需要彈一些必讀公告,但是呢可能會(huì)要去你看完之后才可以關(guān)掉,所以就需要滾動(dòng)到底部才顯示關(guān)閉按鈕,而公告什么的往往又是基于富文本的,那么在展示在Android上時(shí)就要用到WebView,基于這個(gè)要求就有了判斷 WebView 判斷是否滾動(dòng)到底部。
分析:
要判斷是否到底部那么我們先來(lái)分析有哪幾種情況,當(dāng)html文檔加載到WebView后會(huì)有一下兩種情況。
WebView里的html內(nèi)容沒(méi)有填充滿,就是無(wú)滾動(dòng)條情況。html內(nèi)容的高度比WebView控件高,這時(shí)候就會(huì)有滾動(dòng)條,即有滾動(dòng)條
對(duì)于情況1,沒(méi)有滾動(dòng)條我們直接顯示關(guān)閉按鈕就可,但對(duì)于第二種有滾動(dòng)條情況就需要計(jì)算高度即:html高度 = WebView高度 + 滾動(dòng)條長(zhǎng)度 那么這時(shí)就可判斷為滾動(dòng)條到達(dá)了底部
實(shí)現(xiàn):
html高度 <= WebView高度 + 滾動(dòng)條長(zhǎng)度 即可視為到達(dá)底部
注意:必須要控件初始化好后去獲取高度,不然獲取的高度是0
以下是實(shí)現(xiàn)
x5WebView?.let {
it.webViewClient = object : WebViewClient() {
override fun onPageFinished(
view: WebView,
url: String
) {
super.onPageFinished(view, url)
postSafeDelayed(1000) {
loading_pb.visibility = View.GONE
}
//頁(yè)面加載完判斷是否到底部邏輯
view.post {
view.measure(0, 0)
val htmlContentHeight: Int = view.getMeasuredHeight()
val viewHeight: Int = view.getHeight()
//如果html高度小于控件高度,那么說(shuō)明一屏可以展示下直接顯示關(guān)閉按鈕
if(htmlContentHeight <= viewHeight){
// TODO 顯示關(guān)閉按鈕
}else{
//這里說(shuō)明有滾動(dòng)條,就需要監(jiān)聽滾動(dòng)事件
view?.setOnCustomScrollChangedListener(object : WebView.CustomScrollChangeListener{
override fun onScrollChange(
scrollX: Int,
scrollY: Int,
oldScrollX: Int,
oldScrollY: Int
) {
Timber.w("setOnCustomScrollChangedListener 滾動(dòng)底部,html高度:${htmlContentHeight},scrollY:${scrollY}")
//已經(jīng)處于底端
if(htmlContentHeight - (viewHeight + scrollY) <= 0){
Timber.w("setOnCustomScrollChangedListener 到達(dá)底部")
//TODO 到達(dá)底部
}
}
})
}
}
}
}
}
}
以上就是實(shí)現(xiàn),WebView.CustomScrollChangeListener這個(gè)事件是自己在WebView上定義的,監(jiān)聽的是WebView的onScrollChanged方法下的自定義監(jiān)聽
總結(jié)
到此這篇關(guān)于Android WebView如何判斷是否滾動(dòng)到底部的文章就介紹到這了,更多相關(guān)Android WebView滾動(dòng)到底部?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Android WebView輸入框被檔問(wèn)題升級(jí)解析
- 淺談Android開發(fā)Webview的Loading使用效果
- Android?webView加載數(shù)據(jù)時(shí)內(nèi)存溢出問(wèn)題及解決
- Android?WebView預(yù)渲染介紹
- Android?WebView軟鍵盤遮擋輸入框方案詳解
- Android WebView控件基本使用示例
- Android WebView基礎(chǔ)應(yīng)用詳解
- Android WebView實(shí)現(xiàn)全屏播放視頻
- Android?WebView緩存機(jī)制優(yōu)化加載慢問(wèn)題
相關(guān)文章
Android 錢包支付之輸入支付密碼的實(shí)現(xiàn)步驟
這篇文章主要介紹了Android 錢包支付之輸入支付密碼,需要的朋友可以參考下2018-04-04
android中設(shè)置TextView/Button 走馬燈(Marquee)效果示例
定義走馬燈(Marquee),主要在Project/res/layout/main.xml即可,下面與大家分享下具體的實(shí)現(xiàn),感興趣的朋友可以參考下哈2013-06-06
Android ScreenLockReceiver監(jiān)聽鎖屏功能示例
這篇文章主要介紹了Android ScreenLockReceiver監(jiān)聽鎖屏功能,結(jié)合實(shí)例形式分析了Android監(jiān)聽鎖屏及取消監(jiān)聽功能的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-07-07
Android使用ViewDragHelper實(shí)現(xiàn)圖片下拽返回示例
這篇文章主要介紹了Android使用ViewDragHelper實(shí)現(xiàn)圖片下拽返回示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
Android 圖片處理避免出現(xiàn)oom的方法詳解
本篇文章主要介紹了Android 圖片處理避免出現(xiàn)oom的方法詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
android開發(fā)教程之系統(tǒng)資源的使用方法 android資源文件
這篇文章主要介紹了android中的系統(tǒng)資源的使用方法,包括顏色資源 、字符串資源、尺寸資源、XML資源文件,需要的朋友可以參考下2014-02-02
Android Retrofit和Rxjava的網(wǎng)絡(luò)請(qǐng)求
這篇文章主要介紹了Android Retrofit和Rxjava的網(wǎng)絡(luò)請(qǐng)求的相關(guān)資料,需要的朋友可以參考下2017-03-03

