#鸿蒙通关秘籍#在HarmonyOS NEXT开发中如何阻止点击事件冒泡

HarmonyOS
6天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
NLP梦绘山H

在HarmonyOS NEXT开发中,为了确保在子组件设置为不可点击时,点击子组件区域不会触发父组件的点击事件,可以使用容器组件将子组件包裹,并通过设置hitTestBehavior属性来阻止事件冒泡。具体实现如下:

@Component
struct ClickEvent {
  @Consume isEnabled: boolean;
  @State parentCompResponseTimes: number = 0;

  build() {
    Column() {
      Text("点击事件阻止冒泡示例")
        .width('90%')
        .textAlign(TextAlign.Start)
      Column() {
        Text("父组件")
          .margin('10px')
        Row() {
          Text("父组件响应次数: ")
          Text(`${this.parentCompResponseTimes}`)
        }
        .margin({
          top: '10px',
          bottom: '10px'
        })

        Column() {
          Button("子组件")
            .width(200)
            .height(50)
            .borderRadius(10)
            .enabled(false)
            .onClick(() => {
              // 子组件点击事件不触发
            })
        }
        .hitTestBehavior(this.isEnabled ? HitTestMode.Block : HitTestMode.Default)
      }
      .width('90%')
      .height(150)
      .backgroundColor('#F0F0F0')
      .alignItems(HorizontalAlign.Center)
      .onClick(() => {
        this.parentCompResponseTimes++;
      })
      .margin({ top: '20px' })
      .borderRadius(10)
    }
    .margin({ top: '30px' })
  }
}
分享
微博
QQ
微信
回复
6天前
相关问题
点击事件冒泡不符合预期
731浏览 • 1回复 待解决