HarmonyOS鸿蒙Next中触摸事件的TouchEvent调用stopPropagation时无法阻止事件分发

HarmonyOS鸿蒙Next中触摸事件的TouchEvent调用stopPropagation时无法阻止事件分发 问题描述

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

Button() {
  Button()
    .onTouch(xx)
}

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

解决措施

stopPropagation是阻止事件冒泡,事件冒泡是从里到外触发的,所以给外层按钮设置无效,如果想给外层按钮设置属性从而阻止里层按钮触发触摸事件,可以给外层按钮添加.hitTestBehavior(HitTestMode.Block)。

参考链接

触摸测试控制


更多关于HarmonyOS鸿蒙Next中触摸事件的TouchEvent调用stopPropagation时无法阻止事件分发的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS鸿蒙Next中触摸事件的TouchEvent调用stopPropagation时无法阻止事件分发的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,TouchEventstopPropagation方法用于阻止事件继续向上冒泡,但无法阻止事件在捕获阶段的分发。如果你需要完全阻止事件的分发,可以结合stopImmediatePropagation方法使用,或者在事件处理函数中直接返回true,表示事件已被处理且不再继续分发。此外,确保事件处理逻辑正确,避免因事件处理顺序问题导致stopPropagation失效。

回到顶部