HarmonyOS 查询当前状态是横屏还是竖屏

通过下面代码可以监听横屏竖屏切换事件:

let listener = mediaquery.matchMediaSync(’(orientation: landscape)’); //监听横屏事件那么初始化时怎样主动查询当前是横屏还是竖屏呢?

HarmonyOS
2024-12-20 17:29:57
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

1.可以通过diplay.on可以监听屏幕状态改变。其中可以在module.json5中设置EntryAbility为orientation,或者使用window.setPreFerredOrientation动态设置窗口横竖屏。

2.屏幕横竖屏监听:当监听到变化时,可以通过发布订阅的方式全局通知。module.json5里面配置 “orientation”: “auto_rotation”,让屏幕自动旋转。win.setPreferredOrientation(window.Orientation.PORTRAIT) ,设置横屏或者竖屏。win.on(“windowSizeChange”, (data) => {}),监听横竖屏变化。onConfigurationUpdate生命周期中监听屏幕变化。

对于窗口的横竖屏可以借助display.getDefaultDisplaySync().orientation这个属性来判断屏幕目前所处的横竖屏状态。参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-display-V5

示例代码:

let oritation:number=display.getDefaultDisplaySync().orientation;
switch (oritation){
case display.Orientation.PORTRAIT:this.status=‘竖屏’;break;
case display.Orientation.LANDSCAPE:this.status=‘横屏’;break;
case display.Orientation.PORTRAIT_INVERTED:this.status=‘反向竖屏’;break;
case display.Orientation.LANDSCAPE_INVERTED:this.status=‘反向横屏’;break;
default:this.status=‘不知道’;
}
分享
微博
QQ
微信
回复
2024-12-20 19:41:04
相关问题
如何获取当前还是啊?
5327浏览 • 1回复 待解决
HarmonyOS 折叠如何知道当前状态
162浏览 • 1回复 待解决
HarmonyOS 播放问题
869浏览 • 1回复 待解决
HarmonyOS 状态下获取组件的宽高
910浏览 • 1回复 待解决