在ICS上(仅据我所知),当我在webview中打开一个无线电元素或另一个对话框元素时,一旦该元素关闭,我会得到一个白色的屏幕,除了收音机盒。仍然可以在webview中单击元素,单击它们后,它们将被重绘并可见。
我发现webview.setLayerType(View.LAYER_TYPE_NONE, null)
解决了这个问题,但我不明白为什么。我有硬件加速。
这里发生了什么?将图层类型设置为无正常吗?还有其他方法可行吗?
答案 0 :(得分:6)
尝试在包含WebView的Activity(包含android:hardwareAccelerated="false"
)上禁用硬件加速。您也可以尝试禁用HW-acc。仅在您的WebView上 - 这正是您对LAYER_TYPE_NONE
;)所做的。
LAYER_TYPE_NONE
:视图呈现正常,不受屏幕外缓冲区的支持。LAYER_TYPE_HARDWARE
:如果应用程序是硬件加速的,则视图将在硬件中呈现为硬件纹理。如果应用程序不是硬件加速,则此图层类型的行为与LAYER_TYPE_SOFTWARE
相同。LAYER_TYPE_SOFTWARE
:视图在软件中呈现为位图