代码之家  ›  专栏  ›  技术社区  ›  Hugo Gresse

系统UI(状态栏和导航栏)渲染工件[重复]

  •  1
  • Hugo Gresse  · 技术社区  · 10 年前

    我有一个全屏视频使用 外部播放器 在FullScreenActivity中,其中 状态栏和导航栏隐藏 (来自android>=4.4)。

    活动 已完成 ,我回到上一个活动,这不是全屏(显示系统ui),70%的时间我在系统ui上遇到了一个非常奇怪的问题,如下所示:

    enter image description here

    请注意,图像是原始图像,因此导航栏右侧的空白区域会显示在手机上。

    恢复应用程序时,当另一个视频播放时,此伪影消失。顶部工件对应于Toolbar+状态栏。当全屏活动完全淡出并完成时,工件会出现。

    欢迎任何建议或代码请求。

    2 回复  |  直到 10 年前
        1
  •  2
  •   Community c0D3l0g1c    7 年前

    中存在已知错误 WebView (至少从KitKat开始),这有时会导致这些伪影。它在Android bug追踪器中被归档为 this issue 。虽然他们声称它在Android 5.0中是固定的,但事实并非如此,尽管(至少从我的经验来看)它不像以前那样容易复制。

    在任何情况下,解决方法都是使用软件渲染 Web视图 通过 setLayerType() :

    webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    

    一些相关问题:


    如果您有一个自成一体的例子来重现这个bug,我将非常感谢您能在上面的链接中向AOSP Issue Tracker的人员提供它。

        2
  •  0
  •   hrskrs    9 年前

    这可能是渲染问题,已报告 here

    设置您的 WebView 像这样:

    yourWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

    可以解决您的问题。