问题描述

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坐标在手机屏幕的左上角,但是上面状态栏,虽然没显示状态,但是应用的内容也不能显示在那里,显示在那个位置了,就会被挤压到状态栏之外。

也可能是我什么模式没设置对,后面再研究吧。