如何在安卓中将WebView滚动到顶部?

12

我正在开发一个应用程序中的 webView,当按下按钮时 (两个按钮是 next 和 previous,它们只是改变 webview 中的内容),webview 加载的内容会发生变化。

如果我滚动到 webview 中的某一点并按下 next 或 previous 按钮,它会从同一点开始。我希望每次加载新数据时,它都会从顶部显示内容。

我已经使用了:

webView.scrollTo(0, 0);

但是不起作用。它怎么能工作?请有人帮忙吗?


在这里回答了,请查看https://dev59.com/_WDVa4cB1Zd3GeqPf7fL - Vishal Pawar
3个回答

14

您可以使用WebViewClient并将onPageFinished设置为滚动到顶部: 如何监听WebView完成加载URL?

mWebView.setWebViewClient(new WebViewClient() {
  public void onPageFinished(WebView view, String url) {
    view.scrollTo(0,0);
  }
});

这样,当您滚动页面时,内容将被加载。这可能会感觉有点迟缓,但它应该每次都能正常工作。


9
也许延迟一下会有用?因为内容通常不会立即加载。
new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
                webView.scrollTo(0,0);

            }
        }, 500);

4
使用线程并延迟执行scrollTo以使其正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接