为什么设置了onClick事件后,绑定的gesture事件就无效了?

如果单独设置onClick或者gesture,两个都能分别执行,但是如果当我给一个组件设置了onClick事件之后,再绑定一个gesture手势,gesture里的事件就不生效了?这是为什么呢?


Button("点击")
        .onClick(() => {
          console.log("===点击事件")
        })
        .gesture(TapGesture()
          .onAction((event: GestureEvent) => {
            if (event) {
              console.log("===TapGesture点击事件")
            }
          })
        )
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
鸿蒙点击事件
鸿蒙手势绑定
鸿蒙单一手势
2025-03-25 13:21:38
浏览
收藏 0
回答 3
回答 3
按赞同
/
按时间
Huang兄

TapGesture默认是单击事件可以认为 和onClick是相同的事件

当 onClick 消费掉这次点击后,不会再次分发给 TapGesture

分享
微博
QQ
微信
回复
2025-03-25 13:45:18
珲少

gesture是手势识别器,用来监听用户触摸,点击等交互,onClick可以理解为是更高抽象层次的交互方法,实现了onClick后,会终端事件的继续传递。


分享
微博
QQ
微信
回复
2025-03-26 09:17:29
全栈若城
  • 事件冒泡机制 :HarmonyOS 中的事件处理遵循一定的优先级顺序
  • 事件拦截 : onClick 作为内置事件处理器,会默认拦截(消费)点击事件,导致自定义的 gesture 无法接收到事件
分享
微博
QQ
微信
回复
2025-03-26 09:47:26
相关问题
Tabs选项绑定onClick事件之后无法切换
2496浏览 • 0回复 待解决
HarmonyOS onClick事件如何阻止事件冒泡
921浏览 • 1回复 待解决
怎么透传onClick事件
890浏览 • 1回复 待解决
nagios配置为什么页面是空
3057浏览 • 0回复 待解决