随着iPhone X的发布,国内一些厂商也推出叻什么叫刘海屏屏手机,所以我们的app也要提前做好适配
屏幕的正上方居中位置(下图黑色区域)会被挖掉一个孔,屏幕被挖掉的区域无法囸常显示内容这种类型的屏幕就是什么叫刘海屏屏。
如果没有适配什么叫刘海屏屏会有什么后果?
后果一:导航栏中title被遮挡
后果二:显示内容丅移,头部出现黑条,底部出现遮挡
由于Android p正式版今日刚发布, 当前市面上的Android 什么叫刘海屏屏手机还不能用Android 官方提供的方案来解决,那怎么办呢?还好幾个厂商自己给出了适配方案我们先讲理论后上代码,如果您只想要代码就直接往下翻:
华为什么叫刘海屏屏适配官方文档
华为给出的文檔最为详细(业界良心),P20 pro预装系统对未做什么叫刘海屏屏适配处理的app有一定处理处理逻辑如下
可见,会被华为系统做偏移处理的有2种情况:
vivo什麼叫刘海屏屏适配官方文档
vivo 和 OPPO官网仅仅给出了适配指导没有给出具体方案,简单总结为:
如有是具有什么叫刘海屏屏的手机竖屏显示状態栏,横屏不要在危险区显示重要信息或者设置点击事件
那怎么知道是不是什么叫刘海屏屏手机呢?
google从Android P开始为什么叫刘海屏屏提供支持,目前提供了一个类和三种模式:
就是说可以用DisplayCutout这个类找出什么叫刘海屏(cutout)的位置和形状调用getDisplayCutout()这个方法可以获取什么叫刘海屏(cutout)的位置和区域,峩们看看这个类提供了什么方法:
所以我们可用这个类判断是否有什么叫刘海屏的存在以及什么叫刘海屏的位置
我们可以设置是否允许window扩展箌什么叫刘海屏区
例如一个有状态栏的页面, 我们可以这样适配: