检测Webview滚动是否到达结尾

Moh*_*san 4 android scroll android-webview

我试图弄清楚可以达到的最大滚动位置WebView,我已经尝试webView.pageDown(true)但结果是延迟的(我不能向下滚动,然后在用户面前,这种方法每次都不起作用),我我也试过webView.getContentHeight(),阿拉伯语内容的高度不正确.

请指教

Moh*_*san 12

好的,我想出了答案

你可以使用获得真正的内容高度

(int)Math.floor(webView.getContentHeight()*webView.getScale());

当你获得真正的高度时,只需覆盖webview中的滚动方法来收听滚动事件,如果滚动到达真实高度,你的webview就在滚动的底部.


Mea*_*man 6

@Override
public void onScroll(int l, int t) {
    int height = (int) Math.floor(webView.getContentHeight() * webView.getScale());
    int webViewHeight = webView.getHeight();
    int cutoff = height - webViewHeight - 10; // Don't be too strict on the cutoff point
    if (t >= cutoff) {
        setDisclaimerButtonEnabled(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

非严格性是必需的,因为我发现在三星S5上最底部的滚动值只有1个像素值远离最底层的值!

  • 这是由于Math.floor().试试Math.round() (2认同)