首次加载WebView的页面时,有时图像丢失或显示不正确。如果我重新加载页面,WebView始终显示完美。我知道每个人都会首先想到我在loadUrl之后设置了javascript,但事实并非如此。
在onCreate中我有:
learnWebView = (WebView)findViewById(R.id.learnWebView);
learnWebView.setWebViewClient(new WebViewClient());
learnWebView.getSettings().setJavaScriptEnabled(true);
然后在onCreate之后调用的函数中我有:
learnWebView.loadUrl("myurl");
是的,我知道每次在onCreate之后调用带有loadUrl的函数。
答案 0 :(得分:9)
请尝试这样做而不是你的方式,这是一种不好的做法:
learnWebView.post(new Runnable() {
@Override
public void run() {
learnWebView.loadUrl("myurl");
}
});
或者,如果第一个不能工作:
learnWebView.postDelayed(new Runnable() {
@Override
public void run() {
learnWebView.loadUrl("myurl");
}
}, 500);
希望这有帮助。
答案 1 :(得分:1)
看看onViewAttachedToWindow
。
只有在onViewAttachedToWindow
解雇后,您才应该在javascript中处理逻辑。
答案 2 :(得分:0)
我遇到了同样的问题。不确定它是否与你的情况相同。我花了3天多的时间,实际上找到了原因,另一个WebView对象调用pauseTimers()来保存一些CPU性能,实际上“暂停所有WebView的所有布局,解析和JavaScript定时器。”