由于刘海屏设备上市时运行的是 Android O 设备,而 Android O 没有标准接口来适配刘海屏设备,因此各大厂商针对Android O刘海屏适配方案也各有差异,具体如下:
后来 Android P 中新增了刘海屏适配的API,因此开发者需要针对 Android P 的设备重新适配,使用android标准接口来适配刘海屏设备,文档如下:
Android O 8.0刘海屏适配
- 刘海屏幕机型在界面上的问题:
1.顶部内容会被刘海部分遮挡
2.如何处理耳朵区的显示区域
- 系统如何适配?
1.status bar 的高度必须大于等于刘海的高度;对于应用来说,相当于一个更高的 status bar.
2.当应用显示 status bar 时(如微信首页),允许应用使用耳朵区(因为 status bar 区域本身不可交互,且会显示信号、电池等信息,因此我们假定应用不会在该区域放置重要的内容和可交互的控件)
3.当应用不显示 status bar 时(如全屏游戏),不允许应用使用耳朵区,系统默认填黑
4.横屏时,默认均不允许使用耳朵区,系统默认填黑
5.不允许应用180度倒转显示
- APP如何适配?
1.检查设备是否为Notch设备
2.确定页面是否显示状态栏
3.尽量避免同一个APP不同页面显示和隐藏状态并存(会出现页面跳变的情况(应用的可用高度变了)
4.确定是否需要横屏显示Notch区域(若显示,需兼顾notch区域在左边/右边的情况)
5.检查是否写死了状态栏的高度值。Notch机器状态栏的值是变化的,建议改为读取系统的值
6.检查普通屏幕和刘海屏幕上的显示是否正常.
小米 Android O 刘海屏适配
- 判断设备是否为刘海屏设备
系统增加了 property ro.miui.notch,值为1时则是 Notch 屏手机
SystemProperties.getInt("ro.miui.notch", 0) == 1;
调用示例:
public static int getIn