在调用webview.reload方法后恢复Webview状态。可能吗?

时间:2019-05-10 12:03:43

标签: android android-webview

每当我在Web视图中重新加载网页时,它就会转到页面顶部。 有什么方法可以自动重载后不回到页面顶部并再次滚动吗?

4 个答案:

答案 0 :(得分:0)

如果您已经向下滚动了用户的数量,则可以使用类似的方法。一旦加载,将使用mWebView.scrollTo(0, 1000000000);

向下滚动到所选值
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);
  } 
});

答案 1 :(得分:0)

您不能以正确的方式执行此操作,可以通过使用scrollTo方法指出某个位置来实现。但是在自动加载之后,您将排在最前面,只有您可以使用scrollTo方法。

答案 2 :(得分:0)

您可以通过与Web开发人员进行协调来实现这一目标。

借助JavaScript,您可以将参数传递给WebView中加载的网页。您的Web开发人员可以轻松滚动其HTML页面。

要调用JavaScript方法,

view.loadUrl("javascript:WEB_YOURMETHOD();");

加载时,您需要在URL中嵌入JavaScript方法。

Reference

答案 3 :(得分:0)

解决了一些建议。 //在onPageFinished

x = (int) scrollview.getScaleX();
y = (int) scrollview.getScaleY();

在所需的位置定义x,y的值

wv.reload();
wv.scrollTo(x,y);

您想要的地方