【发布时间】:2019-05-10 12:03:42
【问题描述】:
每当我在 webview 中重新加载网页时,它都会转到页面顶部。 有什么办法可以在自动重新加载后不转到页面顶部并再次滚动?
【问题讨论】:
每当我在 webview 中重新加载网页时,它都会转到页面顶部。 有什么办法可以在自动重新加载后不转到页面顶部并再次滚动?
【问题讨论】:
你不能以正确的方式做到这一点,你可以通过使用 scrollTo 方法指出一些位置来实现它。但是在自动加载之后,你会是顶级的,那么只有你可以使用 scrollTo 方法。
【讨论】:
如果你有用户向下滚动的数量,你可以使用这样的东西。加载后将向下滚动到 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);
}
});
【讨论】:
您可以通过与您的网络开发人员协调来实现此目的。
在 JavaScript 的帮助下,您可以将参数传递给在 WebView 中加载的网页。而且您的 Web 开发人员可以轻松地滚动他们的 HTML 页面。
调用 JavaScript 方法,
view.loadUrl("javascript:WEB_YOURMETHOD();");
您需要在加载时在 URL 中嵌入 JavaScript 方法。
【讨论】:
解决了一些建议。 //在onPageFinished中
x = (int) scrollview.getScaleX();
y = (int) scrollview.getScaleY();
和
在你想要的地方定义你的 x,y 值
wv.reload();
wv.scrollTo(x,y);
你想要的地方
【讨论】: