• Lv0
    粉丝0

积分3 / 贡献0

提问2答案被采纳0文章0

openharmony 4.0中,通过程序改变XComponent 大小出错

xulegend 显示全部楼层 发表于 2024-4-12 11:00:32

如下面的代码,目的是当事件来了后,改变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%' 
}

}

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论2

hyacinth养花人

沙发 发表于 2024-4-12 18:23:39

openharmony 4.0中,通过程序改变XComponent 大小出错

@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是怎么触发的呢?

xulegend

发表于 2024-6-5 17:06  IP属地: 山东省济南市

回复 hyacinth养花人: 我通过定时器,去调用 incomingMsg(),发现界面上 xComponent 的大小不会变。

【1 条回复】

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部