简介

移动设备在用户手中可以任意改变握持方向。在特定场景下,应用需要根据用户握持的方向调整显示页面,或者主动指定在固定方向显示页面,以提供更好的用户体验。比如,双手操作的游戏更倾向于在横屏显示,视频类应用更倾向于在全屏播放和小窗播放间自由切换。

设备有四个显示方向:当用户正向握持设备时,若屏幕的宽度大于高度时,称为横屏(LANDSCAPE),与之倒置的方向则称为反向横屏(LANDSCAPE_INVERTED);若屏幕高度大于宽度时,称为竖屏(PORTRAIT),与之倒置的方向称为反向竖屏(PORTRAIT_INVERTED)

常用的旋转策略

名称 说明
PORTRAIT 1 表示竖屏显示模式。
LANDSCAPE 2 表示横屏显示模式。
PORTRAIT_INVERTED 3 表示反向竖屏显示模式。
LANDSCAPE_INVERTED 4 表示反向横屏显示模式。

更多详细旋转策略可以查阅官方文档
点击跳转官方文档

设置旋转策略

原理 1.调用 setRequestedOrientation() 方法设置旋转策略 2.在 module.json5 配置文件中配置"orientation"字段

调用 setRequestedOrientation() 方法设置旋转策略

可以在页面 aboutToAppear 生命周期设置在特定页面直线横屏

//获取 UIAbilityContext
const context: common.UIAbilityContext =
  this.getUIContext().getHostContext() as common.UIAbilityContext;
//获取该WindowStage实例下的主窗口
const MainWindow = context.windowStage.getMainWindowSync();
// 旋转策略
const orient = window.Orientation.LANDSCAPE;
// 在setPreferredOrientation设置旋转策略
MainWindow.setPreferredOrientation(orient);
在 model.json5 配置

在 module.json5 的配置为全局配置
在这里插入图片描述

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐