目标 - 我想在webview加载网页后滚动(0,60)。至少我想防止网页加载完成时看到的闪烁。闪烁 - 当webview加载网址(例如wiki)时,用户可以滚动浏览文本。但是,webview在完成加载时会自动滚动到顶部。这不会发生在标准浏览器上。我的目标是API 8.(旧的,但人们仍在使用该版本)。
以下是一些代码:
private class WebBrowserWebViewClient extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
Log.d(TAG, "Load URL");
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url)
{
super.onPageFinished(view, url);
Log.d(TAG, "Page Finished Loading");
//Attempt scrollTo here does not work.
view.scrollTo(0, 60);
}
}
我还创建了一个图片监听器。
mWebView.setPictureListener(new PictureListener()
{
@Override
public void onNewPicture(WebView view, Picture picture)
{
Log.d(TAG, "On New Picture called....Y is " + view.getScrollY());
//Does not work because it is called multiple times
view.scrollTo(0, 60);
}
});
我还继续进步
mWebView.setWebChromeClient(new WebChromeClient()
{
@Override
public void onProgressChanged(WebView view, int newProgress)
{
super.onProgressChanged(view, newProgress);
Log.d(TAG,"On PRogress Changed. New Prgoress = " + newProgress);
}
});
所以我注意到Log调试是在webview完成加载URL之前调用onPageFinished()。 onNewPicture()被调用多次,具体取决于URL中的图片数量,并在调用onPageFinsiehd()后调用。 onProgressChanged()newProgress总是达到100然后停止。在onProgressChanged()达到100并且onNewPicture触发后,webview将滚动回到顶部。
问题 - 如何防止webview滚动回到顶部?
注意 - 我见过有关类似问题的其他帖子,但没有人解决此问题。