
【木棉花】学习笔记——ArkUI手势处理(eTS) 原创 精华
春节不停更,此文正在参加「星光计划-春节更帖活动」
前言
在应用中,我们可以用点击、双击、长按等等的方式去操作一个应用,那这些点击、双击、长按就是我们所说的手势处理。当然手势处理也不仅仅是只有这三种,而且我们还可以将这些基础手势组合起来成为一个组合手势。
正文
TapGesture
这是一个点击手势,支持单次点击和多次点击。
参数名称 | 默认值 | 参数描述 |
---|---|---|
count?:number | 1 | 识别的连续点击次数。 |
fingers?:number | 1 | 触发点击的最少手指数,最小为1指, 最大为10指。 |
而在该点击手势中,只有一个事件回调函数,那就是onAction((event?: GestureEvent) => void),当手势识别成功时回调该函数。
双击文本之后呢,就会在输出控制台输出 TapGesture回调成功 这样子的一句提示。
LongPressGesture
LongPressGesture是一个长按手势。
参数名称 | 默认值 | 参数描述 |
---|---|---|
fingers?:number | 1 | 触发长按的最少手指数,最小为1指, 最大取值为10指。 |
repeat?:boolean | false | 是否连续触发事件回调。 |
duration?:number | 500 | 最小触发长按的时间,单位为毫秒(ms)。 |
在长按手势中的回调函数就比较多一些了。
回调函数 | 功能藐视 |
---|---|
onAction((event?: GestureEvent) => void) | 手势识别成功回调。 |
onActionEnd((event?: GestureEvent) => void) | 手势识别成功,手指抬起后触发回调。 |
onActionCancel(event: () => void) | 手势识别成功,接收到触摸取消事件触发回调。 |
我们可以根据这个手势来写一个text来记录长按文本的一个时间
PanGesture
PanGesture是一个平移手势。
参数名称 | 默认值 | 参数描述 |
---|---|---|
fingers?:number | 1 | 触发长按的最少手指数,最小为1指, 最大取值为10指。 |
direction?:PanDirection | All | 设置滑动方向,此枚举值支持逻辑与和逻辑或运算。 |
distance?:number | 5.0 | 最小滑动识别距离,单位为vp。 |
回调函数 | 功能藐视 |
---|---|
onActionStart((event?: GestureEvent) => void) | 手势识别成功回调。 |
onActionUpdate((event?: GestureEvent) => void) | 手势移动过程中回调。 |
onActionEnd((event?: GestureEvent) => void) | Pan手势识别成功,手指抬起后触发回调。 |
onActionCancel(event: () => void) | 手势识别成功,接收到触摸取消事件触发回调。 |
根据可平移手势,我们就可以做出来一个可以平移的文本。
我在上面平移手势中是设置可以水平或者是竖直平移,和设置任何方向都可以平移是相似的。
PinchGesture
PinchGesture是一个捏合手势。在这个捏合手势中,我们就可以去利用捏合手势去改变一张图片或者其他组件的大小。
参数名称 | 默认值 | 参数描述 |
---|---|---|
fingers?:number | 2 | 触发捏合的最少手指数, 最小为2指,最大为5指。 |
distance?:number | 3.0 | 最小识别距离,单位为vp。 |
回调函数 | 功能藐视 |
---|---|
onActionStart((event?: GestureEvent) => void) | 手势识别成功回调。 |
onActionUpdate((event?: GestureEvent) => void) | 手势移动过程中回调。 |
onActionEnd((event?: GestureEvent) => void) | Pinch手势识别成功,手指抬起后触发回调。 |
onActionCancel(event: () => void) | 手势识别成功,接收到触摸取消事件触发回调。 |
那我们就写一个程序去通过捏合手势去放大或者缩小PinchGesture这个文本。
不过由于电脑模拟器只有一个鼠标,但是要实现捏合手势需要至少两根手指,所以这个功能就需要在真机上去查看了。
RotationGesture
RotationGesture是一个旋转手势。当然要实现一个旋转手势也是最少是需要两根手指的。
参数名称 | 默认值 | 参数描述 |
---|---|---|
fingers?:number | 2 | 触发捏合的最少手指数, 最小为2指,最大为5指。 |
angle?:number | 1.0 | 触发旋转手势的最小改变度数,单位为度数。 |
回调函数 | 功能藐视 |
---|---|
onActionStart((event?: GestureEvent) => void) | Rotation手势识别成功回调。 |
onActionUpdate((event?: GestureEvent) => void) | Rotation手势移动过程中回调。 |
onActionEnd((event?: GestureEvent) => void) | Rotation手势识别成功,手指抬起后触发回调。 |
onActionCancel(event: () => void) | Rotation手势识别成功,接收到触摸取消事件触发回调。 |
那我们就在下面的程序中去实现一个用两根手指去旋转,使得RotationGesture文本也旋转。
当然我们也可以利用以上的基础手势去组成一个组合手势,但这里就不予赘述了。
更多资料请关注我们的项目 :Awesome-HarmonyOS_木棉花
本项目会长期更新 ,希望随着鸿蒙一同成长变强的既有我们,也有正在看着这个项目的你。明年3月,深大校园内的木棉花会盛开,那时,鸿蒙也会变的更好,愿这花开,有你我的一份。
