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
相关问题
关于动态创建组件销毁问题
212浏览 • 1回复 待解决
HarmonyOS关于AXIOS动态传参数问题
536浏览 • 1回复 待解决
HarmonyOS Flex组件宽度问题
324浏览 • 1回复 待解决
HarmonyOS Tabs组件tabBar宽度问题
612浏览 • 1回复 待解决
HarmonyOS 关于代理提醒设置问题
453浏览 • 1回复 待解决
设置组件宽度不超出父组件
560浏览 • 1回复 待解决
HarmonyOS 关于Navigation组件问题
430浏览 • 1回复 待解决
关于DES加密设置问题
161浏览 • 1回复 待解决
如何设置组件最大最小宽度高度值
3192浏览 • 1回复 待解决
HarmonyOS 关于Web动态创建
393浏览 • 1回复 待解决
如何动态设置组件属性
850浏览 • 1回复 待解决
如何设置组件随子组件宽度变化
2236浏览 • 1回复 待解决
HarmonyOS 关于Grid组件拖拽排序问题
396浏览 • 0回复 待解决
怎么设置元素最大宽度最小宽度
342浏览 • 1回复 待解决
HarmonyOS List组件动态刷新数据问题
891浏览 • 1回复 待解决
HarmonyOS 如何获取组件宽度
410浏览 • 1回复 待解决
Divider组件如何设置分割线宽度
2839浏览 • 1回复 待解决
组件最大和最小宽度和高度如何设置
2472浏览 • 1回复 待解决