OpenHarmony按钮多点触控实现指南
一、事件模型与多点能力
二、实现方案与示例
方案A 原始多点触控(onTouch)
方案B 多指点击手势(TapGesture)
示例代码(ArkUI/ETS)
@Entry
@Component
struct MultiFingerButton {
build() {
Button('双指单击触发')
.gesture(
TapGesture({ fingers: 2, count: 1 })
.onAction((e: GestureEvent) => {
console.info(`双指单击,参与手指数=${e.fingerList.length}`)
})
)
}
}
@Entry
@Component
struct RawMultiTouchButton {
@State msg: string = '未触发'
build() {
Button('多点触控示例')
.onTouch((e: TouchEvent) => {
switch (e.type) {
case TouchType.Down:
this.msg = `Down 触点:${e.touches.length}`
break
case TouchType.Move:
this.msg = `Move 触点:${e.touches.length}`
break
case TouchType.Up:
if (e.touches.length === 0) {
this.msg = `Up 结束,总触点数=${e.changedTouches.length}`
}
break
}
})
}
}
三、常见问题与最佳实践
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。