Android SystemUI 闪烁

Android自定义Dialog, 设置全屏属性。

1: 完美效果: Dialog出现和消失的时候都不会有闪烁


device-2016-12-27-144102.png

2: 不完美效果


device-2016-12-27-144156.png

市面上的机器, 应该都没处理好这个问题。
1: 三星 S7
没做特殊处理
2: MIUI8
没做特殊处理
3: 华为 Mate8
显示对话框的时候完美, 对话框消失的时候会闪烁
4: Flyme5
做了一些处理, 但不完美

PS:
闪烁=StatusBar和NavigationeBar先出现然后再隐藏

问题分析:
1: 根本原因是Dialog的 Add Window 的时候没有设置SystemUIFlags属性, 而是在relayout的时候才初始化这个flags。
2: 由于Add Window会导致change foucs, 这就导致SystemUI的更新, 但是SystemUIFlags还没更新, 所以会出现闪烁效果。

解决方法:
WMS 初始化 Window 的时候同时初始化SystemUIFlags。

推荐阅读更多精彩内容