GestureDetect 手势检测扩展
GestureDetect 是一个免费的手势检测扩展,用于识别各种手势操作。该扩展可以检测上滑、下滑、左滑、右滑、双击、单击和长按手势,为应用提供丰富的交互体验。
包名:aryan.gupta.GesturesDetector
版本:1
发布日期:2020年11月28日
作者:newbiedeveloper (AryanGupta)
文件大小:10.5 KB
下载
.aix拓展文件:
aryan.gupta.GesturesDetector.aix
.aia示例文件:
功能概述
扩展特性
- 多种手势识别:支持上滑、下滑、左滑、右滑、双击、单击和长按
- 简单易用:只需将布局组件绑定到扩展即可使用
- 非可视组件:不会占用界面空间
- 事件驱动:通过事件处理各种手势操作
- 兼容性强:适用于各种布局组件
支持的手势
- 向上滑动 (Swipe Up)
- 向下滑动 (Swipe Down)
- 向左滑动 (Swipe Left)
- 向右滑动 (Swipe Right)
- 单击 (Click)
- 双击 (Double Click)
- 长按 (Long Click)
使用限制
- 仅支持排列组件:此扩展仅适用于垂直排列(VerticalArrangement)和水平排列(HorizontalArrangement)组件
- 不支持滚动排列:手势检测在滚动排列(ScrollArrangement)上无法工作
- 触摸敏感组件限制:手势在触摸敏感的组件(如按钮、文本框、列表选择器等)上不起作用。如果需要检测手势,请确保排列中有足够的空白区域,或使用禁用点击的标签、图像等组件
截图
所有积木

使用示例

参考
方法 Methods
- 布局 Layout(layout)
- 设置要检测手势的布局组件。需要传入一个垂直排列或水平排列组件作为参数。在 Screen.Initialize 事件中调用此方法来初始化手势检测。
事件 Events
- 点击 onClick()
- 当用户在指定的布局组件上单击时触发此事件。
- 双击 onDoubleClick()
- 当用户在指定的布局组件上双击时触发此事件。
- 长按 onLongClick()
- 当用户在指定的布局组件上长按时触发此事件。
- 向上滑动 onSwipeUp()
- 当用户在指定的布局组件上向上滑动时触发此事件。
- 向下滑动 onSwipeDown()
- 当用户在指定的布局组件上向下滑动时触发此事件。
- 向左滑动 onSwipeLeft()
- 当用户在指定的布局组件上向左滑动时触发此事件。
- 向右滑动 onSwipeRight()
- 当用户在指定的布局组件上向右滑动时触发此事件。
使用方法
基本设置
- 将 GestureDetect 扩展导入到项目中
- 在屏幕初始化事件中,调用 Layout 方法设置要检测手势的布局组件
- 使用相应的事件块处理各种手势事件
配置示例
在 Screen1.Initialize 事件中:
当 Screen1.Initialize 时
调用 GestureDetect1.Layout
layout = VerticalArrangement1
应用场景
1. 图片浏览应用
创建支持手势操作的图片浏览器:
当 GestureDetect1.onSwipeLeft 时
显示下一张图片
当 GestureDetect1.onSwipeRight 时
显示上一张图片
当 GestureDetect1.onDoubleClick 时
切换全屏显示
2. 导航应用
实现手势导航功能:
当 GestureDetect1.onSwipeUp 时
显示地图菜单
当 GestureDetect1.onSwipeDown 时
隐藏地图菜单
当 GestureDetect1.onSwipeLeft 时
切换到下一个地点
当 GestureDetect1.onSwipeRight 时
切换到上一个地点
3. 游戏应用
添加游戏控制手势:
当 GestureDetect1.onSwipeUp 时
角色跳跃
当 GestureDetect1.onSwipeDown 时
角色下蹲
当 GestureDetect1.onSwipeLeft 时
角色向左移动
当 GestureDetect1.onSwipeRight 时
角色向右移动
当 GestureDetect1.onDoubleClick 时
发射技能
4. 媒体播放器
控制媒体播放:
当 GestureDetect1.onSwipeLeft 时
快进视频
当 GestureDetect1.onSwipeRight 时
快退视频
当 GestureDetect1.onSwipeUp 时
增加音量
当 GestureDetect1.onSwipeDown 时
减少音量
当 GestureDetect1.onDoubleClick 时
播放/暂停
5. 阅读应用
电子书阅读控制:
当 GestureDetect1.onSwipeLeft 时
翻到下一页
当 GestureDetect1.onSwipeRight 时
翻到上一页
当 GestureDetect1.onSwipeUp 时
显示目录
当 GestureDetect1.onSwipeDown 时
显示设置
当 GestureDetect1.onDoubleClick 时
添加书签
技术说明
手势检测原理
- 滑动检测:通过检测触摸点的移动轨迹和速度来判断滑动方向
- 单击检测:检测快速点击并在短时间内没有第二次点击
- 双击检测:检测短时间内连续两次点击
- 长按检测:检测触摸点保持按压状态超过设定时间
性能优化建议
- 合理设置布局区域:避免在过小的组件上启用手势检测
- 避免冲突:不要在有滚动功能的组件上使用滑动手势
- 事件处理:保持事件处理函数的简洁性
- 测试兼容性:在不同设备上测试手势识别的准确性
常见问题
Q: 手势检测不灵敏怎么办?
A: 检查布局组件是否正确设置,确保组件区域足够大,避免与其他触摸事件冲突。确保布局中有足够的空白区域用于手势检测。
Q: 手势在按钮上不起作用?
A: 这是正常现象。手势检测在触摸敏感的组件(如按钮、文本框等)上不起作用。需要确保有空白区域或使用禁用点击的组件。
Q: 可以在滚动排列中使用吗?
A: 不可以。此扩展不支持在滚动排列(ScrollArrangement)中使用。仅支持垂直排列和水平排列组件。
Q: 如何在同一个组件上检测多种手势?
A: 扩展会自动识别不同的手势,只需为每个手势编写对应的事件处理程序。
Q: 可以自定义手势的灵敏度吗?
A: 当前版本使用默认的手势识别参数,暂不支持自定义灵敏度设置。
Q: 支持哪些布局组件?
A: 支持大部分布局组件,如 HorizontalArrangement、VerticalArrangement、TableArrangement 等。
Q: 如何实现更复杂的图片滑动功能?
A: 如果需要更复杂的图片滑动功能(如带有动画效果的轮播),建议使用 ViewPager 或 VerticalViewPager 扩展配合使用。
版本信息
- 当前版本:1
- 发布日期:2020年11月28日
- 兼容性:Kodular、App Inventor 2
- 权限要求:无特殊权限要求
致谢
特别感谢以下开发者对扩展开发的支持:
- Mohamed_Tamer - 技术指导
- ADDYLIN - 开发支持
原文链接
原版文档:
- MIT App Inventor Community - GestureDetect 扩展发布帖
- MIT App Inventor Community - GestureDetect 扩展使用讨论
- Kodular Community - GestureDetect 扩展原帖
作者:newbiedeveloper (AryanGupta)
扫码添加客服咨询