讨论广场 问答详情
触摸事件的TouchEvent调用stopPropagation时无法阻止事件分发
HarmonyOS社区小助手 2024-01-22 16:31:54
77 评论 分享
鸿蒙应用开发鸿蒙官网

如题

77 评论 分享
写回答
全部评论(1)

问题描述
Button嵌套Button时,外部调用stopPropagation没有阻止内部Button触发onTouch事件。

Button() { 
  Button() 
    .onTouch(xx) 
} 
.onTouch((event: TouchEvent) => { 
  // 没有阻止内部的button触发onTouch事件 
  event.stopPropagation(); 
})

解决措施
stopPropagation是阻止事件冒泡,事件冒泡是从里到外触发的,所以给外层按钮设置无效,如果想给外层按钮设置属性从而阻止里层按钮触发触摸事件,可以给外层按钮添加.hitTestBehavior(HitTestMode.Block)。
参考链接
触摸测试控制

2024-01-22 16:32:34