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
2024-12-24 17:10:42
浏览
收藏 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
微信
回复
2024-12-24 19:43:02
相关问题
HarmonyOS 获取图片的
177浏览 • 1回复 待解决
获取Column最终的
650浏览 • 1回复 待解决
HarmonyOS调用相机设备API获取失败问题
765浏览 • 1回复 待解决
HarmonyOS photoAsset获取图片失败
478浏览 • 1回复 待解决
如何测量获取控件
986浏览 • 1回复 待解决
HarmonyOS 如何获取Webview的
227浏览 • 1回复 待解决
如何获取窗口的信息
2636浏览 • 1回复 待解决
ArkTs如何获取组件的
4981浏览 • 1回复 待解决
HarmonyOS 下刘海的获取不到
215浏览 • 1回复 待解决
HarmonyOS获取相册视频的问题
836浏览 • 1回复 待解决
HarmonyOS如何获取指定子组件的
1480浏览 • 1回复 待解决
鸿蒙如何获取Element图片的
8065浏览 • 1回复 待解决
求大佬告知如何获取组件
629浏览 • 1回复 待解决
java如何获取屏幕。找不到api?
5858浏览 • 1回复 待解决
HarmonyOS 怎么在Page中获取窗口的
254浏览 • 1回复 待解决
HarmonyOS 怎么获取网络图的实际
250浏览 • 1回复 待解决