Android官方9.0刘海屏适配策略
1.如果非全屏模式(有状态栏),则app不受刘海屏影响,刘海屏的高度就是状态栏的高度。
2.如果全屏模式,app未适配刘海屏,系统会对界面做特殊处理,竖屏向下移动,横屏向右移动。
Android原生系统中三种刘海屏样式,图中是第一种,这种模式市场上基本没有采用这种刘海屏。
目前市场上绝大多数是采用这个“长型显示屏凹口”,这种模式有个特征,刘海屏的高度即为状态栏的高度,那为什么绝大多数都是这种刘海屏,我却没见过呢,因为各个厂商已经自己定制修改了显示样式。
非全屏模式下,app不受状态栏的影响。
当设置全屏后,未适配刘海屏的话,系统将会默认将内容区域向下移动,要想取消这块黑边,我们就需要对刘海屏进行适配。
第一步:要将内容区域延申至顶层区域
顶部区域共有三种模式 params.layoutInDisplayCutoutMode=
1.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT; 默认模式,就是上面第一次未设置时的显示样式
2.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES 允许将内容区域延伸至刘海屏区域
3.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER 不允许将内容区域延伸至刘海屏区域
采用第二种模式的话,内容想要全屏展示,还需要沉浸式模式
将内容区域延伸至刘海屏和底部导航区域
注意事项
1.将内容延伸至刘海屏之前,先判断当前手机是否有刘海屏
还有一种我最喜欢的方式,透明状态栏,将内容添加到状态栏,然后将状态栏设置为透明,增加app的显示区域。