arkui-x LongPressGesture重入问题
·
前一篇提到LongPressGesture的写法,需要补充说明下,一般线上文档的写法:
.gesture(
LongPressGesture({ repeat: true })
// 由于repeat设置为true,长按动作存在时会连续触发,触发间隔为duration(默认值500ms)
.onAction((event: GestureEvent) => {
if (event && event.repeat) {
this.count++
}
})
// 长按动作一结束触发
.onActionEnd((event: GestureEvent) => {
this.count = 0
})
)
这是使用长按的repeat能力进行计数。
如果要通过长按触发弹窗,这个重复就不需要了。如果重复多次触发弹窗,可能会出现无法预期的结果。
只需要把repeat改为false就可以了。如下:
.gesture(
LongPressGesture({ repeat: false })
.onAction((event: GestureEvent) => {
......
// 触发弹窗,或其他一次性处理
})
.onActionEnd(() => {
})
)
这样的效果就是,长按元素到一定时间就会触发,即使一直按着不放也会触发,符合以往的用户习惯。
更多推荐



所有评论(0)