HarmonyOS LongPressGesture手势移动问题

LongPressGesture手势, 长按左右滑动, 其返回的offsetX并没有变化。

HarmonyOS
2024-09-29 11:55:03
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

LongPressGesture(长按手势事件)主要是强调长按时间,不监听位置变化,可以使用PanGesture(拖动手势事件)或SwipeGesture(滑动事件)来替代,都可以监听位置。如果需要监听长按事件,那么组合手势使用也可以的。

以下是组合手势(长按+拖动)的demo:

@Entry  
@Component  
struct GestureGroupExample {  
  @State count: number = 0  
  @State offsetX: number = 0  
  @State offsetY: number = 0  
  @State positionX: number = 0  
  @State positionY: number = 0  
  @State borderStyles: BorderStyle = BorderStyle.Solid  
  build() {  
    Column() {  
      Text('sequence gesture\n' + 'LongPress onAction:' + this.count + '\nPanGesture offset:\nX: ' + this.offsetX + '\n' + 'Y: ' + this.offsetY)  
        .fontSize(15)  
    }  
    .height(150)  
    .width(200)  
    .padding(20)  
    .margin(20)  
    .border({ width: 3, style: this.borderStyles })  
    .gesture(  
      // 以下组合手势为顺序识别,当长按手势事件未正常触发时则不会触发拖动手势事件  
      GestureGroup(GestureMode.Sequence,  
        LongPressGesture({ repeat: true })  
          .onAction((event?: GestureEvent) => {  
            if (event && event.repeat) {  
              this.count++  
            }  
            console.info('LongPress onAction')  
          }),  
        PanGesture()  
          .onActionStart(() => {  
            this.borderStyles = BorderStyle.Dashed  
            console.info('pan start')  
          })  
          .onActionUpdate((event?: GestureEvent) => {  
            if (event) {  
              this.offsetX = this.positionX + event.offsetX  
              this.offsetY = this.positionY + event.offsetY  
            }  
            console.info('pan update')  
          })  
          .onActionEnd(() => {  
            this.borderStyles = BorderStyle.Solid  
            console.info('pan end')  
          })  
      )  
        .onCancel(() => {  
          console.info('sequence gesture canceled')  
        })  
    )  
  }  
}
分享
微博
QQ
微信
回复
2024-09-29 17:29:55
相关问题
HarmonyOS 悬浮按钮拖动问题
245浏览 • 1回复 待解决
HarmonyOS scroll滑动问题
350浏览 • 1回复 待解决
HarmonyOS 嵌套滑动问题
216浏览 • 1回复 待解决
HarmonyOS Slider滑动问题
248浏览 • 1回复 待解决
HarmonyOS list滑动问题
672浏览 • 1回复 待解决
HarmonyOS 移动上XComponent注册问题
355浏览 • 1回复 待解决
HarmonyOS Scroll组件滚动问题
399浏览 • 1回复 待解决
HarmonyOS 手势响应不同角度问题
181浏览 • 1回复 待解决
HarmonyOS Tabs和Web嵌套左右滑动问题
237浏览 • 1回复 待解决
HarmonyOS Tabs组件的Tab栏滚动问题
403浏览 • 1回复 待解决
HarmonyOS 拦截系统返回手势问题
275浏览 • 1回复 待解决
TabContent内web组件滑动问题
148浏览 • 2回复 待解决
es6启动问题有了解的吗?
2341浏览 • 1回复 待解决
仿射变换后列表滑动问题
223浏览 • 1回复 待解决
win10下MySQL的后台启动问题
2859浏览 • 1回复 待解决
Grid嵌套滚动问题有知道的吗?
2538浏览 • 1回复 待解决