【关键字】
图片组件 / 触发LongPressGesture长按事件 / image控件
【问题描述】
使用image控件,绑定LongPressGesture无法被触发。
示例代码:
@State count: number = 0
build() {
Column() {
Text('LongPress onAction:' + this.count).fontSize(28) // 单指长按文本触发该手势事件
Image('xxxx')
.gesture(
LongPressGesture({ repeat: true })// 由于repeat设置为true,长按动作存在时会连续触发,触发间隔为duration(默认值500ms)
.onAction((event?: GestureEvent) => {
if (event && event.repeat) {
this.count++
}
})// 长按动作一结束触发
.onActionEnd(() => {
this.count = 0
})
)
}
}
【解决方案】
请给Image设置draggable为false即可正常触发长按事件。
示例代码如下:
Image($r('app.media.icon'))
.draggable(false)//设置不可拖拽
.gesture(
LongPressGesture({ repeat: true })// 由于repeat设置为true,长按动作存在时会连续触发,触发间隔为duration(默认值500ms)
.onAction((event?: GestureEvent) => {
if (event && event.repeat) {
this.count++
}
})// 长按动作一结束触发
.onActionEnd(() => {
this.count = 0
})
)