HarmonyOS鸿蒙Next中横屏状态如何避开挖孔区域

HarmonyOS鸿蒙Next中横屏状态如何避开挖孔区域

【设备信息】Mate60

API版本】Api13

DevEco Studio版本】5.0.7.200

【问题描述】

横屏状态如何避开挖孔区域,执行了以下代码,点击切换全屏:

```javascript
window.getLastWindow(getContext(this)).then((win) => {
  this.isLandSpace = true
  win.setPreferredOrientation(window.Orientation.LANDSCAPE)
})
5 回复
  1. 检查页面是否配置expandSafeArea属性,切换横屏时需要取消拓展到挖孔区域

  2. 默认摄像头挖孔区域不为非安全区域,页面不避让挖孔。

从API Version 12开始,可在module.json5中添加配置项, 摄像头挖孔区域视为非安全区,实现页面默认避让挖孔:

"metadata": [
  {
    "name": "avoid_cutout",
    "value": "true",
  }
],

可以参考官网文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-expand-safe-area-V5

更多关于HarmonyOS鸿蒙Next中横屏状态如何避开挖孔区域的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


  1. 检查页面是否配置expandSafeArea属性,切换横屏时需要取消拓展到挖孔区域
  2. 默认摄像头挖孔区域不为非安全区域,页面不避让挖孔。

从API Version 12开始,可在module.json5中添加配置项, 摄像头挖孔区域视为非安全区,实现页面默认避让挖孔:

"metadata": [
  {
    "name": "avoid_cutout",
    "value": "true",
  }
],

可以参考官网文档:华为开发者联盟

在HarmonyOS鸿蒙Next中,横屏状态下避开挖孔区域可以通过设置窗口的布局参数来实现。具体方法是使用WindowManager.LayoutParams中的layoutInDisplayCutoutMode属性。将该属性设置为LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES,系统会自动调整窗口布局,避开挖孔区域。此外,还可以使用DisplayCutout类获取挖孔区域的具体信息,并根据需要手动调整布局。通过这些方式,可以在横屏状态下有效避开挖孔区域,确保内容显示完整。

在HarmonyOS鸿蒙Next中,横屏状态下避开挖孔区域可以通过以下步骤实现:

  1. 获取屏幕信息:使用DisplayManager获取屏幕的宽高和挖孔区域信息。
  2. 调整布局:通过WindowInsets获取安全区域(即避开挖孔的区域),并在布局时避开这些区域。
  3. 设置布局参数:在ActivityFragment中,使用WindowManager.LayoutParams设置窗口属性,确保内容显示在安全区域内。
  4. 动态适配:在横屏状态下,监听屏幕方向变化,动态调整布局以避开挖孔区域。

通过以上方法,可以确保应用在横屏状态下避开挖孔区域,提供更好的用户体验。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!