我有一个WebViewClient
的自定义实现,该实现覆盖了onPageFinished()
,在这里我将加载视图换成WebView
。有时一切正常,但是其他时候onPageFinished()
根本没有被调用。这是完全随机的。
onPageStarted()
总是被呼叫。
public class LoaderWebViewClient extends WebViewClient {
private final TableLayout swapTableLayout;
public LoaderWebViewClient(TableLayout swapTableLayout) {
this.swapTableLayout = swapTableLayout;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
// Sometimes doesn't get called
@Override
public void onPageFinished(WebView view, String url) {
swapTableLayout.removeAllViews();
swapTableLayout.addView(view);
super.onPageFinished(view, url);
}
}
我正在从自定义类实例化一个WebView
:
WebView webView = new WebView(context);
WebViewClient webViewClient = new LoaderWebViewClient(swapTableLayout);
webView.setWebViewClient(webViewClient);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setVerticalScrollBarEnabled(false);
webView.setHorizontalScrollBarEnabled(false);
webView.getSettings().setJavaScriptEnabled(true);
webView.setOverScrollMode(WebView.OVER_SCROLL_NEVER);
webView.loadUrl(url);
答案 0 :(得分:0)
我发现了问题。在onPageFinished()
中,我将从WebView
本身所在的布局中删除所有视图(如下一行所示)。
这以某种方式干扰了WebView
的加载。我只是用隐藏和显示替换了删除和重新插入的视图(它们总是在布局中膨胀),并且一切似乎都正常。