鸿蒙原生APP开发之横竖屏开发实践


往期笔录记录:

  • 鸿蒙(HarmonyOS)北向开发知识点记录~
  • 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~
  • 鸿蒙应用开发与鸿蒙系统开发哪个更有前景?
  • 嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~
  • 对于大前端开发来说,转鸿蒙开发究竟是福还是祸?
  • 鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?
  • 记录一场鸿蒙开发岗位面试经历~
  • 持续更新中……

概述

横竖屏切换功能即实现应用内既支持竖屏显示也支持横屏显示的效果。对于应用内不同页面显示方向不同的情况,需要在应用逻辑中,动态修改窗口方向,来实现该效果,例如包含视频播放功能的应用,首页内容是采用竖屏方式,而视频详情页则采用横屏方式展示。

本文主要介绍横竖屏功能的开发过程中需要关注的内容,包括如下部分:

  • 窗口旋转策略的选择
  • 常用应用类型的横竖屏开发
  • 常见的横竖屏开发问题

窗口旋转说明

目前在HarmonyOS系统中,窗口的旋转形态包括以下四种,窗口的状态对应真机实际状态如下:

图1 窗口形态示意图

鸿蒙原生APP开发之横竖屏开发实践_第1张图片

有两种设置窗口旋转策略的方式:

一、通过module.json5文件中“orientation”字段进行设置

二、在代码中通过调用窗口window的setPreferredOrientation方法进行设置

这两种方式触发设置旋转的时机不同,总的来说,module.json5文件中的字段在窗口启动时就会生效,对于应用启动时就需要设置横屏或者竖屏的应用,需要进行配置。而setPreferredOrientation是在调用该方法时进行窗口方向的设置,用于在应用启动之后,还需要改变显示方向的场景。

配置module.json5的orientation字段

此字段配置的是应用启动时的窗口显示状态,对于开屏时就需要以默认的横屏或者竖屏方式显示,需要在此字段进行相应的配置:

{
  "module": {
    // ...
    "abilities": [
      {
        "name": "EntryAbility",
        // ...
        "orientation": "portrait"
      }
    ]
  }
}

其支持的参数可以参考module.json5配置项中 orientation字段相关配置 的 orientation字段 说明:

根据应用默认的旋转行为进行相应的配置:

  • 如果应用是竖屏应用,建议配置portrait为默认旋转策略。
  • 如果应用是横屏应用,例如游戏类应用,进入游戏时,默认就是横屏,此时有两种情况:

一、仅支持横屏,建议配置landscape为默认旋转策略。

二、支持在横屏和反向横屏中切换,建议设置为auto_rotation_landscape。

  • 如果应用为可旋转应用,建议应用配置a

你可能感兴趣的:(鸿蒙开发,移动开发,HarmonyOS,harmonyos,性能优化,移动开发,鸿蒙开发,ArkUI,屏幕适配)