HarmonyOS 鸿蒙Next无法获取手机设备宽高
HarmonyOS 鸿蒙Next无法获取手机设备宽高
需要组件宽跟根据设备宽度变化,高度比宽度搞30,需要获取设备宽度,但是该api无法获取到数值
import display from ‘@ohos.display’;
function displayWidth ():number {
let displayClass: display.Display = display.getDefaultDisplaySync();
console.log(‘width:’+ displayClass?.width.toString() )
return displayClass?.width
}
@Component
export struct ModuleItemList {
@State dataArr :Array<ModuleModel> = []
@Prop editor ?: boolean = false
@State screenWidth : number = displayWidth();
build() {
Grid(){
ForEach(this.dataArr, (item: ModuleModel) => {
GridItem(){
if (this.editor) {
ModuleItemEditor({moduleModel:item})
}else
ModuleItemBadge({moduleModel:item})
}.onClick(()=>{
item.title = ‘456’+ item.title
}).width(this.screenWidth *0.2).height(this.screenWidth +30)
})
}.rowsGap(10)
}
}
import display from ‘@ohos.display’;
function displayWidth ():number {
let displayClass: display.Display = display.getDefaultDisplaySync();
console.log(‘width:’+ displayClass?.width.toString() )
return displayClass?.width
}
@Component
export struct ModuleItemList {
@State dataArr :Array<ModuleModel> = []
@Prop editor ?: boolean = false
@State screenWidth : number = displayWidth();
build() {
Grid(){
ForEach(this.dataArr, (item: ModuleModel) => {
GridItem(){
if (this.editor) {
ModuleItemEditor({moduleModel:item})
}else
ModuleItemBadge({moduleModel:item})
}.onClick(()=>{
item.title = ‘456’+ item.title
}).width(this.screenWidth *0.2).height(this.screenWidth +30)
})
}.rowsGap(10)
}
}
更多关于HarmonyOS 鸿蒙Next无法获取手机设备宽高的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
需要px2vp转换一下,直接使用返回的宽度1260即时除以2也是超过全屏,界面是看不出来的。获取宽度打印一致为0,以及预览也是不显示的。仅运行才能看见效果。
更多关于HarmonyOS 鸿蒙Next无法获取手机设备宽高的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,若遇到无法获取手机设备宽高的问题,通常是因为访问设备信息的API使用不当或权限配置有误。以下是一些针对性的解决步骤:
-
检查权限配置: 确保应用已在
manifest.json
文件中声明了获取设备信息的必要权限,如ohos.permission.READ_SETTINGS
(若涉及系统设置读取)和ohos.permission.GET_TASKS
(若涉及任务管理,尽管获取宽高不常见此权限需求)。 -
使用正确的API: 利用HarmonyOS提供的DisplayMetrics类来获取屏幕宽高。示例代码:
import display from '[@ohos](/user/ohos).multimedia.display'; let metrics = new display.DisplayMetrics(); display.getDefaultDisplay().getRealMetrics(metrics); let width = metrics.widthPixels; let height = metrics.heightPixels;
-
适配不同设备: 考虑到HarmonyOS可能运行在多种设备上,确保代码能适配不同屏幕尺寸和分辨率。
-
调试与日志: 使用鸿蒙系统的日志工具打印相关变量值,检查API调用结果是否符合预期。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。这将确保你获得更专业的技术支持。