在 ICS 上(据我所知),当我在 web View 中打开一个单选元素或另一个对话框元素时,一旦该元素关闭,我就会得到一个白屏,单选框除外。元素仍然可以在 webview 中点击,一旦点击,它们就会重新绘制并可见。
我发现 webview.setLayerType(View.LAYER_TYPE_NONE, null)
解决了这个问题,但我不明白为什么。我开启了硬件加速。
这是怎么回事?将图层类型设置为无可以吗?还有其他可行的方法吗?
最佳答案
尝试在包含 WebView 的 Activity (使用 android:hardwareAccelerated="false"
)上禁用硬件加速。您也可以尝试禁用 HW-acc。仅在您的 WebView 上 - 这正是您对 LAYER_TYPE_NONE
;) 所做的。
LAYER_TYPE_NONE
: View 正常呈现,并且不受屏幕外缓冲区的支持。LAYER_TYPE_HARDWARE
:如果应用程序是硬件加速的,则 View 在硬件中呈现为硬件纹理。如果应用程序不是硬件加速的,则此层类型的行为与LAYER_TYPE_SOFTWARE
相同。LAYER_TYPE_SOFTWARE
: View 在软件中呈现为位图
关于Android:对话框关闭后 ICS Webview 变白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9279737/