HarmonyOS onAreaChange回调方法问题

Flex添加onAreaChange区域变化回调监听,监听高度变化,如果设置Flex的.height为newValue,那么onAreaChange回调方法中的newValue就无变化了,一直是0,这个怎么处理?

代码如下:目前看问题现象就是:组件设置onAreaChange,同时设置.height的高度为变化的高度,那么回调中的返回值就不对了。

@State historyHeight:Length = 0
Flex(
  {
    direction: FlexDirection.Row,
    wrap: FlexWrap.Wrap
  }
)
  .height(this.historyHeight)
  .onAreaChange((oldValue:Area, newValue:Area) => {
    this.historyHeight = newValue.height
  })
HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

因为onAreaChange回调之后,高度的值没有变化了,所以不会走onAreaChange回调了,如果设置的值一直增加的话是可以的。

demo如下:

// xxx.ets
@Entry
@Component
struct AreaExample {
  @State value: string = 'Text'
  @State sizeValue: string = ''
  @State historyHeight:Length = 10

  build() {
    Column() {
      Text(this.value)
        .backgroundColor(Color.Green)
        .fontSize(20)
        .width(this.historyHeight)
        .onClick(() => {
          this.historyHeight=this.historyHeight as number + 1
        })
        .onAreaChange((oldValue: Area, newValue: Area) => {
          console.info(`tag Ace: on area change, newValue.width:`+newValue.width)
          this.sizeValue = JSON.stringify(newValue)
          this.historyHeight = newValue.width
        })
      Text('new area is: \n' + this.sizeValue).margin({ right: 30, left: 30 })
    }
    .width('100%').height('100%').margin({ top: 30 })
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 点击事件的方法
49浏览 • 1回复 待解决
HarmonyOS @Watch方法没有改变
31浏览 • 1回复 待解决
HarmonyOS onAreaChange使用问题
823浏览 • 1回复 待解决
HarmonyOS 人脸识别问题
36浏览 • 1回复 待解决
HarmonyOS Slider值问题
31浏览 • 1回复 待解决
HarmonyOS Scroll方法执行改变
33浏览 • 1回复 待解决
HarmonyOS 组件是否有销毁方法
657浏览 • 1回复 待解决
Flutter - EventChannel问题
203浏览 • 1回复 待解决
HarmonyOS Scroll组件事件问题
224浏览 • 1回复 待解决
HarmonyOS 活体检测问题
250浏览 • 1回复 待解决
HarmonyOS 位置权限变更监听问题
97浏览 • 1回复 待解决
HarmonyOS方法的值如何转成vp
32浏览 • 1回复 待解决
HarmonyOS onScrollyoffset不准确问题
491浏览 • 1回复 待解决
HarmonyOS ArkTS接口的案例问题
765浏览 • 1回复 待解决
HarmonyOS 自定义interface问题
208浏览 • 1回复 待解决
HarmonyOS 事件
69浏览 • 1回复 待解决