webview.reload 方法调用后恢复 webview 状态。可能吗?
Restore webview state after webview.reload method call. Is it possible?
每当我在 webview 中重新加载网页时,它都会转到页面顶部。
有什么方法可以在自动重新加载后不转到页面顶部并再次滚动吗?
如果您已经有用户向下滚动的数量,您可以使用类似这样的东西。加载后的位置将向下滚动到带有 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);
}
});
你不能以正确的方式做到这一点,你可以通过使用 scrollTo 方法指出一些位置来实现它。但是自动加载后你会在顶部然后只有你可以使用 scrollTo 方法。
您可以通过与您的网络开发人员协调来实现这一点。
在 JavaScript 的帮助下,您可以将参数传递给在 WebView 中加载的网页。您的 Web 开发人员可以轻松滚动他们的 HTML 页面。
要调用JavaScript方法,
view.loadUrl("javascript:WEB_YOURMETHOD();");
加载时,您需要在 URL 中嵌入 JavaScript 方法。
Reference
根据一些建议解决了。
//在onPageFinished
x = (int) scrollview.getScaleX();
y = (int) scrollview.getScaleY();
和
根据需要定义 x,y 的值
wv.reload();
wv.scrollTo(x,y);
你想要的地方
每当我在 webview 中重新加载网页时,它都会转到页面顶部。 有什么方法可以在自动重新加载后不转到页面顶部并再次滚动吗?
如果您已经有用户向下滚动的数量,您可以使用类似这样的东西。加载后的位置将向下滚动到带有 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);
}
});
你不能以正确的方式做到这一点,你可以通过使用 scrollTo 方法指出一些位置来实现它。但是自动加载后你会在顶部然后只有你可以使用 scrollTo 方法。
您可以通过与您的网络开发人员协调来实现这一点。
在 JavaScript 的帮助下,您可以将参数传递给在 WebView 中加载的网页。您的 Web 开发人员可以轻松滚动他们的 HTML 页面。
要调用JavaScript方法,
view.loadUrl("javascript:WEB_YOURMETHOD();");
加载时,您需要在 URL 中嵌入 JavaScript 方法。
Reference
根据一些建议解决了。 //在onPageFinished
x = (int) scrollview.getScaleX();
y = (int) scrollview.getScaleY();
和
根据需要定义 x,y 的值
wv.reload();
wv.scrollTo(x,y);
你想要的地方