如何实现事件透传?

问题描述

例如在一个Stack中,有两个兄弟组件,组件A被组件B盖住,用户点击组件B时能否将点击事件透传至组件A,触发组件A的onClick回调而不触发组件B的onClick回调。

阅读 661
1 个回答

解决措施

组件B设置hitTestBehavior属性为HitTestMode.None即可。

代码示例

@Entry 
@Component 
struct StackExample { 
  build() { 
    Stack({ alignContent: Alignment.Bottom }) { 
      Text('A') 
        .width('90%') 
        .height('100%') 
        .backgroundColor(0xd2cab3) 
        .align(Alignment.Top) 
        .onClick(() => { 
          console.log('11111') 
        }) 
      Text('B') 
        .width('70%') 
        .height('60%') 
        .backgroundColor(0xc1cbac) 
        .align(Alignment.Top) 
        .hitTestBehavior(HitTestMode.None) 
        .onClick(() => { 
          console.log('1111122222') 
        }) 
    }.width('100%').height(150).margin({ top: 5 }) 
  } 
}

参考链接

触摸测试控制

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进