怎么做记步数的程序到网站,做阿里云网站的公司,it外包考核,网站制作一般哪家好上篇回顾#xff1a;ArkTS开发系列之事件#xff08;2.8.1触屏、键鼠、焦点事件#xff09;
本篇内容#xff1a;ArkTS开发系列之事件#xff08;2.8.2手势事件#xff09;
一、绑定手势方法
1. 常规手势绑定方法 Text(手势).fontSize(44).gesture(TapGesture().onAct…上篇回顾ArkTS开发系列之事件2.8.1触屏、键鼠、焦点事件
本篇内容ArkTS开发系列之事件2.8.2手势事件
一、绑定手势方法
1. 常规手势绑定方法 Text(手势).fontSize(44).gesture(TapGesture().onAction((event) {console.error(event: JSON.stringify(event))}))2. 带优先级的手势绑定方法
需要注意子父组件绑定相同级别手势时子组件优先响应如果父组件绑定优先级手势方法子组件为普通绑定手势方法则父组件优先响应 .priorityGesture(TapGesture().onAction((event){console.error(parentGesture: JSON.stringify(event))}))3. 并行手势绑定方法
当父组件绑定此手势方法时父子组件可同时响应手势 .parallelGesture(TapGesture().onAction((event){console.error(parent event: JSON.stringify(event))}))二、单一手势
1. 点击手势tapGesture Text(手势).fontSize(44).gesture(TapGesture().onAction((event) {console.error(event: JSON.stringify(event))}))2. 长按手势longPressGesture
LongPressGesture(value?:{fingers?:number; repeat?:boolean; duration?:number})fingers :触发最少手指数默认1repeat 是否连续触发 默认falseduration 长按多久触发默认500
Text(长按手势).fontSize(55).gesture(LongPressGesture({fingers: 1, repeat: true, duration: 300})//fingers :触发最少手指数默认1 repeat 是否连续触发 默认false duration 长按多久触发默认500.onAction(event{console.error(longPress: JSON.stringify(event))}))3. 拖动手势PanGesture
PanGesture(value?:{ fingers?:number; direction?:PanDirection; distance?:number})fingers: 触发手势最少手指数默认1direction触发手势方向默认值Pandirection.Alldistance触发手势的最少距离单位为vp默认5vp有点类似于onTouch事件 Text(拖动手势).fontSize(44).gesture(PanGesture().onActionStart(event {console.error(Pan start: JSON.stringify(event))}).onActionUpdate(event {console.error(Pan update: JSON.stringify(event))}).onActionEnd(event {console.error(Pan end: JSON.stringify(event))}).onActionCancel(() {console.error(Pan cancel: )}))4. 撮合手势PinchGesture)
PinchGesture(value?:{fingers?:number; distance?:number})fingers: 触发手势最少手指数默认2, 最大值为5distance触发手势的最少距离单位为vp默认5vp Text(撮合手势).fontSize(44).gesture(PinchGesture().onActionStart(event {console.error(Pinch start: JSON.stringify(event))}).onActionUpdate(event {console.error(Pinch update: JSON.stringify(event))}).onActionEnd(event {console.error(Pinch end: JSON.stringify(event))}).onActionCancel(() {console.error(Pinch cancel: )}))5. 旋转手势RotationGesture)
RotationGesture(value?:{fingers?:number; angle?:number})fingers: 触发手势最少手指数默认2, 最大值为5angle: 触发手势的最小改变度数单位是deg默认为1deg Text().fontSize(44).gesture(RotationGesture({fingers:2}).onActionStart(event {console.error(Rotation start: JSON.stringify(event))}).onActionUpdate(event {console.error(Rotation update: JSON.stringify(event))}).onActionEnd(event {console.error(Rotation end: JSON.stringify(event))}).onActionCancel(() {console.error(Rotation cancel: )}))6. 滑动手势SwipeGesture)
SwipeGesture(value?:{fingers?:number; direction?:SwipeDirection; speed?:number})fingers: 触发手势最少手指数默认1, 最大值为10direction: 触发手势的方向默认值是 SwipeDirection.Allspeed: 触发手势的最小滑动速度单位为vp/s默认值为100vp/s .gesture(SwipeGesture({ direction: SwipeDirection.Vertical }).onAction(event {console.error(Swipe : JSON.stringify(event))}))三、组合手势
GestureGroup(mode:GestureMode, ...gesture:GestureType[])mode: 声明组合手势的类型 gesture 手势数组
1. 顺序组合 .gesture(GestureGroup(GestureMode.Sequence,SwipeGesture({ direction: SwipeDirection.Vertical }).onAction(event {console.error(Swipe : JSON.stringify(event))}),LongPressGesture().onAction(event {console.error(longPress : JSON.stringify(event))})))2. 并行组合 .gesture(GestureGroup(GestureMode.Parallel,SwipeGesture({ direction: SwipeDirection.Vertical }).onAction(event {console.error(Swipe : JSON.stringify(event))}),LongPressGesture().onAction(event {console.error(longPress : JSON.stringify(event))})))3. 互斥组合 .gesture(GestureGroup(GestureMode.Exclusive,SwipeGesture({ direction: SwipeDirection.Vertical }).onAction(event {console.error(Swipe : JSON.stringify(event))}),LongPressGesture().onAction(event {console.error(longPress : JSON.stringify(event))})))