KitKat动画和WebView渲染问题

时间:2014-08-08 06:21:48

标签: android webview android-4.4-kitkat

将动画设置为简单View时,我遇到渲染问题。我的设置为ViewPager,第一个Fragment包含WebView,第二个Fragment包含我自定义的自定义进度指示器。

下面的图片显示了问题,不知何故与WebView有关系,尽管指标完全在其自己的Fragment中。我的猜测是该平台使用相同的GPU渲染器,当有WebView时,它会被破坏。

enter image description here

任何人都有同样的问题/找到了解决方法吗?

感谢。

2 个答案:

答案 0 :(得分:0)

我的猜测有点正确。我找到了解决这个问题的黑客。

  1. 扩展WebView并覆盖所有构造函数
  2. 将图层类型设置为自定义WebView
  3. 的软件

    API级别> = 11

    setLayerType(LAYER_TYPE_SOFTWARE, null);
    

    API级别< 11

    try {
        Method setLayerType = getClass().getMethod("setLayerType",
                new Class[] { int.class, Paint.class });
        if (setLayerType != null)
            setLayerType.invoke(this, new Object[] { 1, null });
    } catch (NoSuchMethodException e) {
    } catch (IllegalArgumentException e) {
    } catch (IllegalAccessException e) {
    } catch (InvocationTargetException e) {
    }
    

    注意:此实施会显着影响WebView的效果。

答案 1 :(得分:0)

看看这个,

https://developer.android.com/guide/webapps/migrating.html

在KitKat中,一切都发生了很大变化。

为什么不尝试将目标SDK设置为18.如果执行此操作,则webview将以兼容模式运行。