HarmonyOS 鸿蒙Next 预览里使用@ohos.display API获取数据错误,期望获取屏幕高度
HarmonyOS 鸿蒙Next 预览里使用@ohos.display API获取数据错误,期望获取屏幕高度
@State osInfo: display.Display = display.getDefaultDisplaySync()
aboutToAppear(): void { console.log(‘system info’, JSON.stringify(this.osInfo)) }
预览模式,组件内
log:
system info {"id":0,"name":"[PC Preview] unknown name","alive":true,"state":{"STATE_UNKNOWN":0,"STATE_OFF":1,"STATE_ON":2,"STATE_DOZE":3,"STATE_DOZE_SUSPEND":4,"STATE_VR":5,"STATE_ON_SUSPEND":6},"refreshRate":0,"rotation":0,"width":0,"height":0,"availableWidth":0,"availableHeight":0,"densityDPI":0,"orientation":{"PORTRAIT":0,"LANDSCAPE":1,"PORTRAIT_INVERTED":2,"LANDSCAPE_INVERTED":3},"densityPixels":0,"scaledDensity":0,"xDPI":0,"yDPI":0,"colorSpaces":[],"hdrFormats":[]}
屏幕的宽度和高度显然不会是0
更多关于HarmonyOS 鸿蒙Next 预览里使用@ohos.display API获取数据错误,期望获取屏幕高度的实战教程也可以访问 https://www.itying.com/category-93-b0.html
import { display } from '@kit.ArkUI'
@Component
struct MoreViewPage {
@State listHeight: number = 0 // 真实的屏幕高度,不包括状态栏的
@State screenHeight: number = 0 // 获取屏幕高度
@State barHeight: number = 0 // 获取状态栏高度
async aboutToAppear() {
// 获取屏幕高度
this.screenHeight = px2vp(display.getDefaultDisplaySync().height) // px转vp 包括状态栏
// 获取状态栏的高度, getCutoutInfo()获取挖孔屏、刘海屏、瀑布屏等不可用屏幕区域信息。
await display.getDefaultDisplaySync().getCutoutInfo().then((data: display.CutoutInfo) => {
this.barHeight = px2vp(data.boundingRects[0].height)
})
// 屏幕高度 - 状态栏高度
this.listHeight = this.screenHeight - this.barHeight
}
build() {
Column() {
Text(this.listHeight.toString())
}
}
}
更多关于HarmonyOS 鸿蒙Next 预览里使用@ohos.display API获取数据错误,期望获取屏幕高度的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS 鸿蒙Next预览版中,若你使用@ohos.display
API获取屏幕高度时遇到错误,可能是因为API使用不当或版本兼容性问题。以下是一些可能的解决方向:
-
检查API调用方式:确保你按照
@ohos.display
API的官方文档正确调用。注意API的版本要求,确保你的开发环境和目标设备均支持该API。 -
权限检查:确认你的应用已申请并获得了访问屏幕信息的必要权限。在HarmonyOS中,某些系统级信息需要特定的权限才能访问。
-
设备兼容性:由于你正在使用的是预览版系统,可能存在某些设备或系统版本不完全兼容的情况。尝试在不同设备或更新后的系统版本上测试你的应用。
-
API变更:预览版系统可能会有API的临时调整或变更。查阅最新的HarmonyOS开发者文档,确认API的使用方法和参数是否有更新。
-
错误处理:增强你的代码中的错误处理逻辑,捕获并处理API调用可能抛出的异常,这有助于诊断问题。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html 。他们将能够提供更具体的帮助和指导。