如下图(设备处于横屏状态),你会明显的发现最左边有一块黑色的区域没有利用起来,那就是刘海的位置。
解决方案如下:
首先,在你的主题下添加这一项,
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
像下面这样。
android:windowLayoutInDisplayCutoutMode是用于指定 Android 应用中如何处理刘海屏区域(刘海屏是指屏幕上的凹槽或凸起,例如刘海屏手机的屏幕上方可能有相机或传感器的切口)的一个主题属性。
shortEdges
(短边)模式是在刘海区域的两侧显示内容,而不会延伸到刘海区域内。这种方式适合于让应用内容沿着刘海的两侧布局,不覆盖刘海的情况。
并且请确保你的应用的 minSdkVersion
至少为 27。如果你的应用的 minSdkVersion
低于 27,你可能需要采用其他方法进行刘海屏适配。
然后,你需要设置布局延伸到状态栏区域(这个根据你的实际情况选择什么时候设置),确保布局内容能够覆盖到状态栏上,如下
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN ;
decorView.setSystemUiVisibility(uiOptions);
这样设备横屏时,刘海区域就利用起来啦!像下面这样,
如果还有什么疑问的话,可以评论区联系我喔!