Android自定義Dialog, 設(shè)置全屏屬性。
1: 完美效果: Dialog出現(xiàn)和消失的時(shí)候都不會(huì)有閃爍

device-2016-12-27-144102.png
2: 不完美效果

device-2016-12-27-144156.png
市面上的機(jī)器, 應(yīng)該都沒(méi)處理好這個(gè)問(wèn)題。
1: 三星 S7
沒(méi)做特殊處理
2: MIUI8
沒(méi)做特殊處理
3: 華為 Mate8
顯示對(duì)話框的時(shí)候完美, 對(duì)話框消失的時(shí)候會(huì)閃爍
4: Flyme5
做了一些處理, 但不完美
PS:
閃爍=StatusBar和NavigationeBar先出現(xiàn)然后再隱藏
問(wèn)題分析:
1: 根本原因是Dialog的 Add Window 的時(shí)候沒(méi)有設(shè)置SystemUIFlags屬性, 而是在relayout的時(shí)候才初始化這個(gè)flags。
2: 由于Add Window會(huì)導(dǎo)致change foucs, 這就導(dǎo)致SystemUI的更新, 但是SystemUIFlags還沒(méi)更新, 所以會(huì)出現(xiàn)閃爍效果。
解決方法:
WMS 初始化 Window 的時(shí)候同時(shí)初始化SystemUIFlags。