HarmonyOS 鸿蒙Next 如何在响应Swiper的滑动事件时不触发子组件的Down、up等事件,在不滑动时才响应子组件的Down、up等事件
HarmonyOS 鸿蒙Next 如何在响应Swiper的滑动事件时不触发子组件的Down、up等事件,在不滑动时才响应子组件的Down、up等事件
Swiper() {
ForEach(this.operateList, (section: DeviceOperateSection) => {
Grid() {
this.FunctionGrid(section.items);
}
}, (item: DeviceOperateSection) => JSON.stringify(item))
}
.indicator(false)
.loop(false)
.width(“100%”)
.height(“100vp”)
.backgroundColor($r(‘app.color.whiteColor’))
.onChange((index) => {
this.index = index
})
@Builder
FunctionGrid(data: DeviceOperateItem[]) {
ForEach(data, (item: DeviceOperateItem) => {
GridItem() {
Column({space: “10vp”}) {
Image(this.currentOperateItemType === item.type ? item.selectImg : item.img)
.objectFit(ImageFit.Contain)
.height(“35vp”)
.width(“35vp”)
Text(item.title)
.fontSize(“12vp”)
.fontColor(this.currentOperateItemType === item.type ? $r(‘app.color.primaryColor’) :$r(‘app.color.blackColor’))
}
.alignItems(HorizontalAlign.Center)
.justifyContent(FlexAlign.Center)
.width(“100%”)
.height(“100%”)
.onTouch((event: TouchEvent) => {
if (event.type === TouchType.Down) {
this.currentOperateItemType = item.type
} else if (event.type === TouchType.Up) {
this.currentOperateItemType = DeviceFunctionType.all
}
})
}
.width(“25%”)
.height(“100%”)
}, (item: DeviceOperateItem): string => item.type.toString());
}
2 回复
可以监听下 Swiper 的滑动,去加个判断的标志位去处理。
其他的目前应该没什么好方法。