HarmonyOS 手势监听

需求场景:给一个组件添加垂直方向的滑动手势监听,根据手指滑动距离,实时的重新设置该组件的位置

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

可以通过组件的onTouch事件来监听手动滑动,并通过改变组件的translate的值来移动组件

@Entry
@Component
struct Page1 {
  @State translatey: number = 300
  InitialPosition: number = 0

  onTouchEvent(event: TouchEvent): void {
    switch (event.type) {
    //手指按下事件
      case TouchType.Down: {
        //记录手指摁下时所在的位置
        this.InitialPosition = event.touches[0].windowY
      }
    //手指按住移动
      case TouchType.Move: {
        this.translatey = this.translatey as number - (this.InitialPosition - event.touches[0].windowY)
        this.InitialPosition = event.touches[0].windowY
      }
    //手指抬起
      case TouchType.Up: {
      }
    }
  }

  build() {
    Column() {
      Column() {

      }
      .width('100%')
      .height(500)
      .backgroundColor(Color.Yellow)
      .translate({ y: this.translatey })
      .onTouch((event: TouchEvent) => {
        this.onTouchEvent(event)
      })
    }
    .justifyContent(FlexAlign.End)
    .height('100%')
    .width('100%')
    .backgroundColor(Color.Grey)
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 动画效果+手势
62浏览 • 1回复 待解决
HarmonyOS 手势密码组件
70浏览 • 1回复 待解决
HarmonyOS 关于手势问题
48浏览 • 1回复 待解决
HarmonyOS 手势事件上报问题
97浏览 • 1回复 待解决
HarmonyOS 手势响应不同角度问题
288浏览 • 1回复 待解决
HarmonyOS 手势滑动登录UI实现
0浏览 • 1回复 待解决
HarmonyOS LongPressGesture手势移动问题
525浏览 • 1回复 待解决
如何获取手势区域高度
378浏览 • 1回复 待解决