如何拦截onTouch事件传递

当父组件绑定了onTouch,其子组件Button绑定了onClick,如何做到点击Button只响应Button的onClick,而不用响应父组件的onTouch。

HarmonyOS
2024-06-11 23:22:15
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
rhlee

可以给父组件设置.hitTestBehavior(HitTestMode.none),父组件不响应onTouch事件,不影响子节点和兄弟节点。

代码示例:

@Entry 
@Component 
struct OnTouchDemo { 
  build() { 
    // outer stack 
    Stack() { 
      Button('outer button') 
        .margin({left : 200}) 
        .onTouch((event) => { 
          console.info('outer button touched type: ' + (event as TouchEvent).type) 
        }) 
      // inner stack 
      Stack() { 
        Button('inner button') 
          .onTouch((event) => { 
            console.info('inner button touched type: ' + (event as TouchEvent).type) 
          }) 
      } 
      .width("100%").height("100%") 
      .hitTestBehavior(HitTestMode.None) 
      .onTouch((event) => { 
        console.info('stack touched type: ' + (event as TouchEvent).type) 
      }) 
 
      Text('Transparent') 
        .hitTestBehavior(HitTestMode.Transparent) 
        .width("100%").height("100%") 
        .onTouch((event) => { 
          console.info('text touched type: ' + (event as TouchEvent).type) 
        }) 
    }.width(300).height(300) 
  } 
}

参考链接

hitTestBehavior对手势和事件的控制

分享
微博
QQ
微信
回复
2024-06-12 23:40:15
相关问题
onTouch事件是否可以判断滑动方向
2001浏览 • 1回复 待解决
WebView goBack事件拦截
1078浏览 • 1回复 待解决
HarmonyOS如何拦截list的滑动事件
398浏览 • 1回复 待解决
Slider拦截点击事件失败
286浏览 • 1回复 待解决
HarmonyOS RN如何拦截返回事件
74浏览 • 1回复 待解决
HarmonyOS 子组件如何拦截触摸事件
63浏览 • 1回复 待解决
求大佬告知如何拦截子控件事件
1788浏览 • 1回复 待解决
Hyperlink的onTouch预览报错
1988浏览 • 1回复 待解决
HarmonyOS UI组件事件拦截处理
397浏览 • 1回复 待解决
鸿蒙事件拦截分发处理
10479浏览 • 2回复 待解决
HarmonyOS 事件传递最佳实践咨询
20浏览 • 1回复 待解决
HarmonyOS 侧滑返回事件拦截与绑定
1258浏览 • 1回复 待解决