如何拦截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事件是否可以判断滑动方向
724浏览 • 1回复 待解决
WebView goBack事件拦截
443浏览 • 1回复 待解决
鸿蒙事件拦截分发处理
9263浏览 • 2回复 待解决
求大佬告知如何拦截子控件事件
828浏览 • 1回复 待解决
如何拦截onConfigurationChanged
3766浏览 • 1回复 待解决
Hyperlink的onTouch预览报错
623浏览 • 1回复 待解决
子组件事件能否到传递父组件
1049浏览 • 1回复 待解决
是否有一对多事件传递机制
904浏览 • 1回复 待解决
webview如何实现网络请求拦截功能
803浏览 • 1回复 待解决
webview拦截返回按钮。
341浏览 • 1回复 待解决
有谁知道如何拦截住页面返回
218浏览 • 3回复 待解决
页面关闭时如何传递数据
811浏览 • 1回复 待解决
this传递问题,该如何解决?
894浏览 • 1回复 待解决
有谁知道web拦截如何处理文件
457浏览 • 1回复 待解决
HTTP GET请求时如何传递参数?
1934浏览 • 1回复 待解决