OpenHarmony开发者论坛

标题: openharmony 4.0中,通过程序改变XComponent 大小出错 [打印本页]

作者: xulegend    时间: 2024-4-12 11:00
标题: openharmony 4.0中,通过程序改变XComponent 大小出错
[md]如下面的代码,目的是当事件来了后,改变xComponent的with,但发现通过下面的 incomingMsg 把size改成100%后,xComponent的大小没有改变。

private surfaceId : string =''
@State width_: string="50%"
xcomponentController: XComponentController = new XComponentController()
build() {
Row() {
XComponent({
id: 'xcomponent',
type: 'surface',
controller: this.xcomponentController
})
.onLoad(() => {
this.xcomponentController.setXComponentSurfaceSize({surfaceWidth:1920,surfaceHeight:1080});
this.surfaceId = this.xcomponentController.getXComponentSurfaceId()
})
.width(this.width_)
.height('480px')
}
.backgroundColor(Color.Black)
.position({x: 0, y: 48})
}

incomingMsg():void {

```
if(width_ == '100%') {
        width_ = '50%'
} else {
        width_ = '100%'
}
```

}
[/md]
作者: hyacinth养花人    时间: 2024-4-12 18:23
标题: openharmony 4.0中,通过程序改变XComponent 大小出错
[md]```
@Entry
@Component
struct Page {
  private surfaceId : string =''
  @State width_: string="50%"
  xcomponentController: XComponentController = new XComponentController()
  build() {
    Row() {
      Button('toggle').onClick(()=>{
        this.incomingMsg();
      })

      XComponent({
        id: 'xcomponent',
        type: 'surface',
        controller: this.xcomponentController
      })
        .onLoad(() => {
          this.xcomponentController.setXComponentSurfaceSize({surfaceWidth:1920,surfaceHeight:1080});
          this.surfaceId = this.xcomponentController.getXComponentSurfaceId()
        })
        .width(this.width_)
        .height('480px')
    }
    .backgroundColor(Color.Black)
    .position({x: 0, y: 48})
  }

  incomingMsg():void {
    if(this.width_ == '100%') {
      this.width_ = '50%'
    } else {
      this.width_ = '100%'
    }
  }
}
```

可以动态改变大小呀。
你的incomingMsg是怎么触发的呢?
[/md]
作者: xulegend    时间: 2024-6-5 17:06
回复 hyacinth养花人: 我通过定时器,去调用 incomingMsg(),发现界面上 xComponent 的大小不会变。




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5