两个重叠的组件如何实现事件透传

两个重叠的组件如何实现事件透传

HarmonyOS
2024-07-24 10:56:26
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
一杯生椰

在特定场景中,当存在两个兄弟组件时,即组件A与组件B,若组件B在布局上覆盖了组件A,且用户执行点击操作于组件B之上,此时使得点击事件能够穿透组件B,直接传递给组件A,从而触发组件A的onClick回调,同时避免触发组件B的onClick回调。

组件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 })
  }
}
分享
微博
QQ
微信
回复
2024-07-24 19:54:13
相关问题
如何实现事件,你会吗?
1853浏览 • 1回复 待解决
怎么onClick事件
127浏览 • 1回复 待解决
关于Image组件两个问题
217浏览 • 1回复 待解决
HarmonyOS 两个同级组件问题
237浏览 • 1回复 待解决
页面导航如何实现两个页面叠层
1700浏览 • 1回复 待解决
customDialog焦点
690浏览 • 1回复 待解决
页面导航如何实现A B两个页面叠层
521浏览 • 1回复 待解决
关于数据库两个问题。
2224浏览 • 1回复 待解决
两个设备控制相关问题
8946浏览 • 3回复 已解决