5

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

请指教

4

3 回答 3

16

好的,我想出了答案

您可以使用获得真实的内容高度

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

当您获得真实高度时,只需覆盖 webview 中的滚动方法以侦听滚动事件,如果滚动达到真实高度,则您的 webview 位于滚动底部。

于 2012-05-30T06:28:59.150 回答
7
@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);
    }
}

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

于 2015-01-05T16:01:42.873 回答
-1

仅当 webview 到达/滚动到底部时加载/可见按钮。

创建 JavaScript 类:

public class JavaScriptInterface {

  @android.webkit.JavascriptInterface
  public void didScrollToBottom() {
    Log.d(TAG, "Scroll to Bottom");
    myHandler.post(new Runnable() {
      @Override
      public void run() {
         btnAccept.setVisibility(View.VISIBLE);

          }
       });
      }
    }

在 onCreate() :

final JavaScriptInterface jsInterface = new JavaScriptInterface();
myWebView.addJavascriptInterface(jsInterface, "AndroidFunction");
于 2014-12-17T10:59:36.440 回答