跳到主要内容

异形屏UI适配

· 阅读需 1 分钟
枫灵剑影

找了好久。

原因

从安卓 9.0 之后有一个的 LAYOUT_IN_DISPLAY_CUTOUT_MODE,不设置的话会在全屏的的时候被异形屏挡出一条黑边。

1.png

2.png

解决方案

在应用启动构建界面前:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
val lp = window.attributes
lp.layoutInDisplayCutoutMode =
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
window.attributes = lp
}

或者在主题文件中添加:

<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>

这样应用界面就可以延展到异形屏的显示区域了。