ViewPager或ScrollView中的WebView - Android 3.0+上的奇怪渲染错误

时间:2011-11-25 19:11:11

标签: android webview android-3.0-honeycomb hardware-acceleration android-4.0-ice-cream-sandwich

我有一个ViewPager。 ViewPager的每个页面都是ScrollView。 ScrollView包含一个WebView和其他几个视图。

在Android 2.3及更早版本上,一切正常,但在3.0+上有一个奇怪的渲染问题:

The WebView should start right under the photo

在ViewPager中向左/向右滚动时,还存在一个非常微妙的渲染问题(Android 4.0 Gmail应用中也存在此问题)。

3 个答案:

答案 0 :(得分:14)

这可能与hardwareAcceleration有关。尝试专门关闭它。你可以这样做

1)清单中的应用程序标记(这将禁用整个应用程序中的硬件加速)

android:hardwareAccelerated="false"

或2)禁用代码中有问题的视图:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

有关详细信息,并检查WebView或ListView是否正确处理硬件加速,请参阅this link

答案 1 :(得分:4)

我通过调用webView.requestLayout()中的ScrollView.onScrollChanged()来部分解决了这个问题。它现在几乎没问题,但滚动时,WebView似乎与其他ScrollView个孩子略微不同步。有时WebView似乎比其他视图稍微缓慢滚动,稍后赶上它们。

答案 2 :(得分:2)

有同样的问题没有被接受的答案修复。最后,结果证明它与页面CSS中的position:fixed有关。用position:absolute替换这些实例似乎已经成功了。