HarmonyOS 关于动态设置组件宽度的问题

在设置组件宽度时,需要进行动态设置,使用:

windowClass.getWindowProperties().windowRect.width

获取到的屏幕宽度单位是什么?

let windowWidth:number = windowClass.getWindowProperties().windowRect.width

为何 Row().width(windowWidth) 效果与 Row().width(’100%‘)不一致,是否需要进行单位转换?

HarmonyOS
2024-10-21 10:08:54
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

windowClass.getWindowProperties().windowRect.width获取到的屏幕宽度单位是px,需要把进行单位转换,px2vp(windowWidth) 下面是相关demo:

import window from '@ohos.window';  
import { BusinessError } from '@ohos.base';  
  
@Entry  
@Component  
struct Width {  
  @State message: string = 'Hello World';  
  @State number:number=0;  
  getWidth(){  
    let windowClass: window.Window | undefined = undefined;  
    try {  
      window.getLastWindow(getContext(), (err: BusinessError, data) => {  
        const errCode: number = err.code;  
        if (errCode) {  
          console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));  
        }  
        windowClass = data;  
        let windowWidth:number=windowClass.getWindowProperties().windowRect.width  
  
        this.number= px2vp(windowWidth)  
        console.log(this.number+" oooooo")  
        console.log(JSON.stringify(windowWidth))  
        console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data));  
      });  
    } catch (exception) {  
      console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(exception));  
    }  
  }  
  
  aboutToAppear(): void {  
    this.getWidth()  
  }  
  
  build() {  
    Row() {  
      Column() {  
        Text(this.message)  
          .fontSize(50)  
          .fontWeight(FontWeight.Bold)  
      }  
      .width('100%')  
    }  
    .height('100%')  
    .width(this.number)  
  }  
}
分享
微博
QQ
微信
回复
2024-10-21 16:58:45
相关问题
关于动态创建组件销毁问题
126浏览 • 1回复 待解决
HarmonyOS Flex组件宽度问题
257浏览 • 1回复 待解决
HarmonyOS Tabs组件tabBar宽度问题
493浏览 • 1回复 待解决
HarmonyOS关于AXIOS动态传参数问题
410浏览 • 1回复 待解决
设置组件宽度不超出父组件
480浏览 • 1回复 待解决
HarmonyOS 关于代理提醒设置问题
357浏览 • 1回复 待解决
HarmonyOS 关于Navigation组件问题
333浏览 • 1回复 待解决
如何动态设置组件属性
793浏览 • 1回复 待解决
HarmonyOS 关于Web动态创建
339浏览 • 1回复 待解决
如何设置组件最大最小宽度高度值
3079浏览 • 1回复 待解决
关于DES加密设置问题
86浏览 • 1回复 待解决
如何设置组件随子组件宽度变化
2089浏览 • 1回复 待解决
HarmonyOS List组件动态刷新数据问题
710浏览 • 1回复 待解决
怎么设置元素最大宽度最小宽度
312浏览 • 1回复 待解决
HarmonyOS 关于Grid组件拖拽排序问题
308浏览 • 0回复 待解决
HarmonyOS 如何获取组件宽度
345浏览 • 1回复 待解决
HarmonyOS使用CustomDialog如何设置宽度
429浏览 • 1回复 待解决
组件最大和最小宽度和高度如何设置
2365浏览 • 1回复 待解决