【发布时间】:2016-08-12 03:41:03
【问题描述】:
第一次加载带有 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 的函数。
【问题讨论】:
-
这是特定于 URL 还是特定于 Android 版本或特定设备?可能是 WebView 正在尝试加载缓存的内容并失败或其他原因。这有时会发生在桌面 WebKit 浏览器上。您是否尝试在首次加载时使用新缓存?
-
实际上它似乎是特定于Android 4.0的。不会发生在 2.3 或 4.1 上。使用新缓存是指调用 learnWebView.clearCache(true)?
-
调用 clearCache() 实际上使情况变得更糟。它使重新加载无法解决问题。
-
另外,您可能想尝试使用 learnWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null) 禁用 WebView 的硬件加速,看看它是否是加速 WebView 中的错误。这是假设您在 Activity 上开启了硬件加速。
-
好的,我只是想排除 4.0+ 硬件加速问题。我没有任何更具体的帮助给你,但你现在知道,如果你的缓存是空的,页面永远不会正确加载。同样,我会考虑尝试不同的网页,看看这是否特定于特定站点或从那里调试的内容。祝你好运。