HarmonyOS 鸿蒙Next 真机媒体查询无效,在Previewer中有效。Mate 60 系统版本为5.0.0.102
HarmonyOS 鸿蒙Next 真机媒体查询无效,在Previewer中有效。Mate 60 系统版本为5.0.0.102
import mediaquery from '@ohos.mediaquery';
@Component
struct Index {
@State color: string = '#DB7093';
@State text: string = '设备竖屏';
listener = mediaquery.matchMediaSync('(orientation: landscape)'); //监听横屏事件
// 当满足媒体查询条件时,触发回调
onPortrait(mediaQueryResult: mediaquery.MediaQueryResult) {
if (mediaQueryResult.matches) { // 若设备为横屏状态,更改相应的页面布局
this.color = '#FFD700';
this.text = '设备横屏';
} else {
this.color = '#DB7093';
this.text = '设备竖屏';
}
}
aboutToAppear() {
// 绑定回调函数
this.listener.on('change', this.onPortrait.bind(this));
}
build() {
Column() {
Text(this.text)
.fontSize(50)
.fontColor(this.color)
.margin({top:50})
}
.width('100%').height('100%')
}
}
更多关于HarmonyOS 鸿蒙Next 真机媒体查询无效,在Previewer中有效。Mate 60 系统版本为5.0.0.102的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
学习了,帮到我了。
在module.json5中设置"orientation"属性值为"auto_rotation",就可以了
“abilities”: [ { //… “orientation”: “auto_rotation” } ]
针对您提到的“HarmonyOS 鸿蒙Next 真机媒体查询无效,在Previewer中有效。Mate 60 系统版本为5.0.0.102”的问题,可能的原因及解决方案如下:
-
真机与Previewer环境差异:
- 预览器(Previewer)通常模拟的是理想化的开发环境,而真机可能因系统配置、权限设置等因素导致媒体查询结果不同。
-
媒体查询语法或逻辑错误:
- 检查媒体查询的语法是否正确,包括媒体类型、特性及值是否书写无误。
- 确认媒体查询逻辑是否适用于真机的屏幕尺寸、分辨率等特性。
-
系统权限或应用设置:
- 检查应用是否已获得必要的系统权限,如访问存储、摄像头等,这些权限可能影响媒体查询的执行。
- 确认应用设置中是否有针对媒体查询的特殊配置或限制。
-
系统更新或兼容性问题:
- 鸿蒙系统可能在不同版本间存在细微差异,导致某些媒体查询在特定版本上无效。
- 检查是否有针对Mate 60系统版本5.0.0.102的特定兼容性说明或更新。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,