HarmonyOS 某个组件有onClick、pan、tap、pin手势监听,如何通过条件来判断让某一个响应事件响应或者不响应

比如我现在有一个Text组件。text组件写了对onClick、pan、tap、pin手势监听,那么正常只要我点击、滑动、缩放都会有回调。

现在我需求是,在某些情况只触发某个或某几个事件的回调,其他事件不回调:

比如有一个标记flag,flag为0 仅onClick事件响应(是指这个回调可以触发,不响应是指回调不会触发),其他手势虽然写了回调但不会触发

比如有一个标记flag,flag为1 仅pan事件响应(是指这个回调可以触发,不响应是指回调不会触发),其他手势虽然写了回调但不会触发

比如有一个标记flag,flag为3 仅tap事件响应,其他手势虽然写了回调但不会触发

比如有一个标记flag,flag为4 仅tap和pin这两个事件响应,其他手势虽然写了回调但不会触发

上述所说的事件响应(是指这个回调可以触发,不响应是指回调不会触发,而不是在回调中return)

HarmonyOS
2024-08-04 14:44:10
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
失望的满天星

您可以参考自定义手势绑定,参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-gesture-customize-judge-0000001862607385

demo如下:

Text('点我,触发事件') 
  .onClick(() => { 
    console.log('-----onClick') 
  }) 
  .gesture( 
    PanGesture(this.panOption) 
      .onActionStart((event: GestureEvent) => { 
        console.info(' Pan start') 
      }) 
  ) 
  .gesture( 
    PinchGesture({ fingers: 3 }) 
      .onActionStart((event: GestureEvent) => { 
        console.info(' Pinch start') 
      }) 
  ) 
  .gesture( 
    TapGesture({ count: 2 }) 
      .onAction((event: GestureEvent) => { 
        if (event) { 
          this.value = JSON.stringify(event.fingerList[0]) 
          console.info('TapGesture start') 
        } 
      }) 
  ) 
  .onGestureJudgeBegin((gestureInfo: GestureInfo, event: BaseGestureEvent) => { 
    // 自定义判定标准 
    if (gestureInfo.type == GestureControl.GestureType.TAP_GESTURE && this.num == 1) { 
      return GestureJudgeResult.CONTINUE; 
    } else if (gestureInfo.type == GestureControl.GestureType.PAN_GESTURE && this.num == 2) { 
      return GestureJudgeResult.CONTINUE; 
    } else if (gestureInfo.type == GestureControl.GestureType.PINCH_GESTURE && this.num == 3) { 
      return GestureJudgeResult.CONTINUE; 
    } else if (gestureInfo.type == GestureControl.GestureType.CLICK && this.num == 4) { 
      return GestureJudgeResult.CONTINUE; 
    } 
    return GestureJudgeResult.REJECT; 
  })
分享
微博
QQ
微信
回复
2024-08-05 12:16:09
相关问题
TextInput的defaultFocus不响应
1520浏览 • 1回复 待解决
HarmonyOS 手势响应不同角度问题
177浏览 • 1回复 待解决
鸿蒙响应屏幕触摸事件如何获取?
7348浏览 • 1回复 已解决
HarmonyOS Tab组件无法响应onPageShow
307浏览 • 1回复 待解决