HarmonyOS Swiper父组件和内部子组件PanGesture手势冲突问题如何解决

HarmonyOS
2024-12-26 15:30:40
3175浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
FengTianYa

需要参考下面代码实现:实现类似图库图片可放大缩小滑动的效果。

参考图库源码:https://gitee.com/openharmony/applications_photos/tree/master

关键代码:

图片Item组件:applications_photos/common/src/main/ets/default/view/PhotoItem.ets

手势处理逻辑:PanGesture…

冲突处理逻辑:

.onTouch((event?: TouchEvent) => {
  this.dealTouchEvent(event as TouchEvent);
  this.eventPipeline?.onTouch(event as TouchEvent);
})
  • 1.
  • 2.
  • 3.
  • 4.

手势管道处理工具:

applications_photos/common/src/main/ets/default/model/browser/photo/EventPipeline.ts

设置swiper滑动状态逻辑:

public setSwipeStatus(disable: Boolean): void {
  this.broadCast.emit(PhotoConstants.SET_DISABLE_SWIPE, [disable]);
}
  • 1.
  • 2.
  • 3.

整体逻辑是在手势管道中通过事件通知swiper禁用或启用滑动手势。OH当前能力是可以实现的。

图片轮播页面:applications_photos/common/src/main/ets/default/view/PhotoSwiper.ets

分享
微博
QQ
微信
回复
2024-12-26 17:03:25


相关问题
事件分发冲突问题如何解决
934浏览 • 1回复 待解决
Gauge组件问题,该如何解决
869浏览 • 1回复 待解决
组件溢出容器问题
1705浏览 • 1回复 待解决
WebList嵌套手势冲突问题
1347浏览 • 1回复 待解决
组件调用组件的方法
1913浏览 • 1回复 待解决
HarmonyOS 组件超出组件布局
477浏览 • 1回复 待解决
HarmonyOS 组件超出组件宽度
490浏览 • 1回复 待解决
HarmonyOS 组件调用组件方法
569浏览 • 1回复 待解决
HarmonyOS 组件调用组件的方法demo
518浏览 • 1回复 待解决
组件调用组件里的方法
810浏览 • 1回复 待解决
组件组件传递函数
676浏览 • 1回复 待解决