WebView 必须加载两次才能正确加载 [英] WebView must be loaded twice to load correctly
问题描述
当带有 WebView 的页面首次加载时,有时图像丢失或显示不正确.如果我重新加载页面,WebView 总是完美显示.我知道每个人首先会认为我在 loadUrl 之后设置了 javascript,但事实并非如此.
When the page with the WebView first loads, sometimes images are missing or displayed incorrectly. If I reload the page the WebView always displays perfectly. I know everyone will first think I set javascript after loadUrl, but that isn't true.
在 onCreate 我有:
In onCreate I have:
learnWebView = (WebView)findViewById(R.id.learnWebView);
learnWebView.setWebViewClient(new WebViewClient());
learnWebView.getSettings().setJavaScriptEnabled(true);
然后在onCreate之后调用的函数中我有:
Then later in the function called after onCreate I have:
learnWebView.loadUrl("myurl");
是的,我知道每次都在 onCreate 之后调用带有 loadUrl 的函数.
And yes, I know that the function with loadUrl is called after onCreate every time.
推荐答案
请尝试这个而不是你的方式,这是一个不好的做法:
Please try this instead of your way, that is a bad practice:
learnWebView.post(new Runnable() {
@Override
public void run() {
learnWebView.loadUrl("myurl");
}
});
或者这个,以防第一个不起作用:
Or this, in case the first one wont work:
learnWebView.postDelayed(new Runnable() {
@Override
public void run() {
learnWebView.loadUrl("myurl");
}
}, 500);
希望这会有所帮助.
这篇关于WebView 必须加载两次才能正确加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!