问题描述
Android应用设置全屏显示时(没有状态栏),在顶部显示的dialog(y坐标为0-状态栏的高度),刘海屏的华为设备上,dialog会被挤压,高度变窄,其他手机没发现该问题。
尝试解决方案
修改WindowManager.LayoutParams为:
LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT,
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER,
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES,
都不能解决问题。
最终解决方案
最终的解决方案是,设置dialog的y坐标在状态栏之下,就可以了。
原因
原因没有查证,只是我的想法,仅供参考。
我感觉可能是因为,华为刘海屏手机,全屏的时候,应用的窗口y坐标在手机屏幕的左上角,但是上面状态栏,虽然没显示状态,但是应用的内容也不能显示在那里,显示在那个位置了,就会被挤压到状态栏之外。
也可能是我什么模式没设置对,后面再研究吧。