必须加载两次WebView才能正确加载

时间:2013-08-07 20:00:05

标签: android webview

首次加载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的函数。

3 个答案:

答案 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定时器。”