我想消费掉触摸事件应该返回什么 onTouch - HarmonyOS 鸿蒙Next

我想消费掉触摸事件应该返回什么 onTouch - HarmonyOS 鸿蒙Next

onTouch(event: (event: TouchEvent) => void): CommonAttribute {

  return //消费掉触摸事件,以防传回到父页面
}
5 回复
试试这个
event.stopPropagation()
// 或者
event.preventDefault()

更多关于我想消费掉触摸事件应该返回什么 onTouch - HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你看我下一个帖子里面,这里还是报错

用最新API 12

event.preventDefault()在API 12中 event.stopPropagation()小于API 12

如果你想onTouch不在执行就看这个文档中的拦截事件 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-on-touch-intercept-V5

在HarmonyOS鸿蒙Next系统中,要消费掉触摸事件,你需要在onTouch方法的返回值中做相应处理。onTouch方法通常是一个布尔类型的返回值,这个返回值决定了事件是否应该继续传递或被当前组件消费。

具体来说,如果onTouch方法返回true,表示触摸事件已被当前组件消费,事件将不会继续向下(如子视图)或向上(如父视图)传递。这通常用于处理自定义的触摸逻辑,如滑动、点击等,并阻止这些事件触发其他默认行为或进一步的事件监听。

如果onTouch方法返回false,则表示触摸事件未被当前组件消费,事件将继续传递,可能会触发子视图或父视图的事件监听器。

因此,在你的onTouch方法中,根据是否要消费事件,返回truefalse。例如:

@Override
public boolean onTouch(View v, MotionEvent event) {
    // 自定义触摸事件处理逻辑
    // 如果处理完成并希望消费事件,返回true
    // 否则,返回false让事件继续传递
    return true; // 或 false,根据实际需求决定
}

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部