HarmonyOS 获取手机设备宽高

需要组件宽跟根据设备宽度变化,高度比宽度高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)
  }
}
HarmonyOS
16h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

参考以下demo

import { BusinessError } from '@kit.BasicServicesKit';
import { display } from '@kit.ArkUI';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  aboutToAppear(): void {
    displayWidth()
  }
  build() {
    Column(){

    }
  }
}
function displayWidth ():number {

  let displayClass: Array<display.Display> =[];
  let promise: Promise<Array<display.Display>> = display.getAllDisplays();

  promise.then((data: Array<display.Display>) => {
    displayClass = data;
    console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data));
  }).catch((err: BusinessError) => {
    console.error('Failed to obtain all the display objects. Code: ${err.code}, message: ${err.message}');
  });
  for (let index = 0; index < displayClass.length; index++) {
    const displayClass3:display.Display = displayClass[index];
    console.log('width3:'+ displayClass3?.width.toString() )
  }

  let displayClass2: display.Display | null = display.getDefaultDisplaySync();
  console.log('width2:'+ displayClass2?.width.toString())
  return displayClass2?.width
}
分享
微博
QQ
微信
回复
13h前
相关问题
HarmonyOS调用相机设备API获取失败问题
447浏览 • 1回复 待解决
HarmonyOS photoAsset获取图片失败
371浏览 • 1回复 待解决
获取Column最终的
453浏览 • 1回复 待解决
如何测量获取控件
826浏览 • 1回复 待解决
HarmonyOS 下刘海的获取不到
74浏览 • 1回复 待解决
如何获取窗口的信息
2364浏览 • 1回复 待解决
ArkTs如何获取组件的
4643浏览 • 1回复 待解决
HarmonyOS获取相册视频的问题
476浏览 • 1回复 待解决
HarmonyOS如何获取指定子组件的
1271浏览 • 1回复 待解决
求大佬告知如何获取组件
477浏览 • 1回复 待解决
鸿蒙如何获取Element图片的
7943浏览 • 1回复 待解决
java如何获取屏幕。找不到api?
5570浏览 • 1回复 待解决
HarmonyOS 横屏状态下获取组件的
379浏览 • 1回复 待解决
如何获取屏幕,你知道吗?
2468浏览 • 1回复 待解决
屏幕如何获取 ,求解决方法
1699浏览 • 1回复 待解决
HarmonyOS RelativeContainer设置问题
5浏览 • 0回复 待解决
如何获取组件的,你学会了吗?
2548浏览 • 1回复 待解决