如何拦截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事件是否可以判断滑动方向
551浏览 • 1回复 待解决
WebView goBack事件拦截
412浏览 • 1回复 待解决
鸿蒙事件拦截分发处理
9127浏览 • 2回复 待解决
求大佬告知如何拦截子控件事件
656浏览 • 1回复 待解决
Hyperlink的onTouch预览报错
477浏览 • 1回复 待解决
子组件事件能否到传递父组件
895浏览 • 1回复 待解决
是否有一对多事件传递机制
759浏览 • 1回复 待解决
如何拦截onConfigurationChanged
3620浏览 • 1回复 待解决
webview如何实现网络请求拦截功能
641浏览 • 1回复 待解决
webview拦截返回按钮。
311浏览 • 1回复 待解决
页面关闭时如何传递数据
658浏览 • 1回复 待解决
this传递问题,该如何解决?
752浏览 • 1回复 待解决
HTTP GET请求时如何传递参数?
1803浏览 • 1回复 待解决
ETS API求助 Navigator如何传递参数
5885浏览 • 1回复 待解决
如何获取router.back传递的参数
1063浏览 • 1回复 待解决