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 子窗口是否可手势移动
91浏览 • 1回复 待解决
HarmonyOS动问题
80浏览 • 1回复 待解决
HarmonyOS scroll滚动问题
33浏览 • 1回复 待解决
HarmonyOS bindSheet拖动问题
21浏览 • 1回复 待解决
HarmonyOS scroll滑动问题
484浏览 • 1回复 待解决
HarmonyOS list滑动问题
842浏览 • 1回复 待解决
HarmonyOS 嵌套滑动问题
369浏览 • 1回复 待解决
HarmonyOS Slider滑动问题
394浏览 • 1回复 待解决
HarmonyOS 悬浮按钮拖动问题
384浏览 • 1回复 待解决
HarmonyOS Scroll组件滚动问题
626浏览 • 1回复 待解决
HarmonyOS onToch事件滑动问题
40浏览 • 1回复 待解决
HarmonyOS移动问题
5浏览 • 1回复 待解决
HarmonyOS Grid组件子项拖动问题
223浏览 • 1回复 待解决
HarmonyOS TextPickerDialog多级联动问题
59浏览 • 1回复 待解决
HarmonyOS 移动上XComponent注册问题
450浏览 • 1回复 待解决
HarmonyOS 关于手势问题
54浏览 • 1回复 待解决
TabContent内web组件滑动问题
258浏览 • 2回复 待解决
HarmonyOS 图片放大后的滚动联动问题
36浏览 • 1回复 待解决
HarmonyOS 手势事件上报问题
106浏览 • 1回复 待解决
HarmonyOS Tabs组件的Tab栏滚动问题
560浏览 • 1回复 待解决
HarmonyOS grid里面的item支持拖动问题
65浏览 • 1回复 待解决