Android WebView滚动到底部

时间:2014-06-19 17:54:12

标签: java android webview scroll

我尝试向下滚动WebView中的页面。因此我找到了函数.pageDown(true)。问题是这个功能对我来说并不适用。大多数情况下它没有做任何事情。

Codesnippet:

wvChat.loadData(chat_, "text/html; charset=utf-8", "UTF-8");
                 wvChat.setWebViewClient(new WebViewClient() {
                     public void onPageFinished(WebView view, String url) {
                        wvChat.pageDown(true);
                     }
                 });

是否有其他方法或在onPageFinished中使用它是错误的?

5 个答案:

答案 0 :(得分:6)

获取html内容高度并使用scrollTo(x,y)

wvChat.loadData(chat_, "text/html; charset=utf-8", "UTF-8");
             wvChat.setWebViewClient(new WebViewClient() {
                 @Override
                 public void onPageFinished(WebView view, String url) {
                    //use the param "view", and call getContentHeight in scrollTo
                    view.scrollTo(0, view.getContentHeight());
                 }
             });

答案 1 :(得分:2)

我有一个使用scrollTo函数向下滚动大文件(多行)的解决方案。我设置的值远远高于内容高度。

mWebView.setWebViewClient(new WebViewClient()
{
  @Override
  public void onPageFinished(WebView view, String url)
  {
    super.onPageFinished(view, url);     

    Handler lHandler = new Handler();
    lHandler.postDelayed(new Runnable()
    {             
      @Override
      public void run()
      {
        mWebView.scrollTo(0, 1000000000);
      }
    }, 200);
  } 
});

现在的问题是,它不适用于小文件(少行),因为onPageFinished方法在WebView渲染之前被调用,所以我必须使用延迟句柄。

答案 2 :(得分:0)

您可以使用Javascript滚动WebView

private fun scrollMove(contentHeight: Float) {
    val speed = (contentHeight / 100) * 1000
    currentWebView?.evaluateJavascript("\$('html,body').animate({scrollTop:$contentHeight},$speed);", null)
}

答案 3 :(得分:0)

我认为这是滚动到底部的最佳解决方案

   public void scrollToBottom(boolean animate) {
        if (animate) {
            pageDown(true);
        } else {
            scrollTo(getScrollX(), computeVerticalScrollRange());
        }
    }

https://chromium.googlesource.com/chromium/src.git/+/d0ef9df6be5983f6df7e4e050bbad4eb5030e7a2/android_webview/java/src/org/chromium/android_webview/AwScrollOffsetManager.java#362

答案 4 :(得分:-1)

pandoc

这更好,毫不拖延......