智能客服
你问我答,随时在线为你解决问题
ArkUI探索当前应用通过Swiper组件垂直滚动展示公告通知,点击子组件的内容能跳转到详情页面,当左右滑动时也会触发Text子组件的点击事件,如何保证在左右滑动时不触发子组件的点击事件。

【背景知识】
参考文档:setKeyboardAvoidMode。
【解决方案】
在子组件通过绑定自定义手势代替onClick事件,给子组件绑定TapGesture点击手势,并设置点击手势的移动阈值,手势移动距离超过阈值时不会识别成点击事件。
Demo如下:
@Entry
@Component
struct Index {
build() {
Column() {
Swiper() {
Text('公告')
.width('80%')
.fontSize(20)
.textAlign(TextAlign.Center)
.gesture(TapGesture({ distanceThreshold: 50 }).onAction((event: GestureEvent) => {
if (event) {
this.getUIContext().getPromptAction().showToast({ message: '通知详情', alignment: Alignment.Top })
}
}))
}
.height('20%')
.vertical(true)
}
.width('100%')
.height('100%')
}
}
我要提问题
HarmonyOS aboutToResue在页面切换时没有被触发 (API12)
HarmonyOS 手势事件存在冲突问题 (API12+)
HarmonyOS 手势冲突导致拖拽事件不触发(API12+)
HarmonyOS onTouchIntercept触发时机是什么 (API12+)
HarmonyOS 左右滑动会触发点击,是否可以屏蔽?(API12+)
HarmonyOS Web组件的点击事件 (API12+)
HarmonyOS swiper自动轮播时,如何准确获取到被点击的item(API12+)
HarmonyOS 子组件如何响应父组件的点击事件?(API12+)
智能客服
你问我答,随时在线为你解决问题
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功