系统UI(状态栏和导航栏)渲染神器
System UI (Statusbar and Navigation Bar) render artifact
我在 FullScreenActivity 中使用 Exoplayer 制作了一个全屏视频,其中 状态栏和导航栏被隐藏(来自 android >= 4.4).
当 activity 完成 时,我回到上一个 activity,它不是全屏(显示系统 ui)并且 70% 的时间我在系统 UI 上遇到一个非常奇怪的问题,如下所示:
注意是原图,所以导航栏右边的白色space显示在phone.
当恢复应用程序时播放另一个视频时,此伪影消失。顶部神器对应工具栏+状态栏。当全屏 activity 完全淡出并完成时,会出现工件。
欢迎任何建议或代码请求。
这可能是渲染问题,已报告 here
像这样设置您的WebView
:
yourWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
可以解决你的问题。
WebView
(至少自 KitKat 以来)中存在一个已知错误,有时会导致这些伪像。它在 Android 错误跟踪器中作为 this issue 归档。尽管他们声称它已在 Android 5.0 中修复,但事实并非如此(至少根据我的经验)它不像以前那样容易重现。
无论如何,解决方法是对 WebView
使用软件渲染,通过 setLayerType()
:
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
一些相关问题:
- Android SystemUI glitches in Lollipop
- FlipAnimation causing issue in 4.4.3
如果您有一个重现错误的独立示例,如果您能将其提供给上面 link 中 AOSP 问题跟踪器的人员,我将不胜感激.
我在 FullScreenActivity 中使用 Exoplayer 制作了一个全屏视频,其中 状态栏和导航栏被隐藏(来自 android >= 4.4).
当 activity 完成 时,我回到上一个 activity,它不是全屏(显示系统 ui)并且 70% 的时间我在系统 UI 上遇到一个非常奇怪的问题,如下所示:
注意是原图,所以导航栏右边的白色space显示在phone.
当恢复应用程序时播放另一个视频时,此伪影消失。顶部神器对应工具栏+状态栏。当全屏 activity 完全淡出并完成时,会出现工件。
欢迎任何建议或代码请求。
这可能是渲染问题,已报告 here
像这样设置您的WebView
:
yourWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
可以解决你的问题。
WebView
(至少自 KitKat 以来)中存在一个已知错误,有时会导致这些伪像。它在 Android 错误跟踪器中作为 this issue 归档。尽管他们声称它已在 Android 5.0 中修复,但事实并非如此(至少根据我的经验)它不像以前那样容易重现。
无论如何,解决方法是对 WebView
使用软件渲染,通过 setLayerType()
:
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
一些相关问题:
- Android SystemUI glitches in Lollipop
- FlipAnimation causing issue in 4.4.3
如果您有一个重现错误的独立示例,如果您能将其提供给上面 link 中 AOSP 问题跟踪器的人员,我将不胜感激.