HarmonyOS 图片组件手势滑动

期望做一个类似相册打开图片,可以对当前图片缩放拖动;

1.最外层是一个swiper容器组件,可以左右滑动展示多张图片;

2.每张图片都是宽度占满当前屏幕等比例缩放,然后对当前图片开发手势缩放及滑动功能;

3.当图片放大后,拖动图片时,如何判断当前图片的边界?比如左滑动,当图片右边对齐了屏幕右边就要停止滑动,转而将滑动事件交给父容器swiper

4.总结:期望解答图片放大后,其大小超出了屏幕,左右拖动如何判断到了边界?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

1、panGesture本身支持设置 direction 禁用/启用 相应方向的手势

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-gestures-pangesture-V5

2、根据业务需要计算得到direction,设置给pangesture

典型的就是大图,是单个Image放到Swiper里

如果初始Image为Contain,左右对齐控件边缘,可以设置为PanDirection.None,禁用pan手势检测,左右滑动时让Swiper消费,实现左右滑动浏览;

如果对Image作放大,那边根据scale值,计算图片真实边缘超出屏幕,可以设置PanDirection.Left | PanDirection.Right,持续检测pan手势,同时计算真实图片边缘,一旦图片边缘到达屏幕边缘,再把direction设置为PanDirection.Left或者PanDirection.Right,禁止检测相应方向的pan,让Swiper消费

设置direction和disableSwipe代码可以看

https://gitee.com/openharmony/applications_photos/blob/master/common/src/main/ets/default/model/browser/photo/EventPipeline.ts#L436

disableSwipe设置为true会禁用swiper滑动切换功能。pangesture手势的拦截是通过调用onDirectionChangeRespond来实现的,参考

https://gitee.com/openharmony/applications_photos/blob/master/common/src/main/ets/default/view/PhotoItem.ets#L236

分享
微博
QQ
微信
回复
1天前
相关问题
Swiper组件设置不跟随手势滑动
789浏览 • 1回复 待解决
HarmonyOS 手势滑动登录UI实现
161浏览 • 1回复 待解决
手势滑动退出HarmonyOS应用的规格
178浏览 • 1回复 待解决
HarmonyOS 禁用滑动返回手势问题
169浏览 • 1回复 待解决
HarmonyOS 手势密码组件
163浏览 • 1回复 待解决
HarmonyOS image图片纵向横向滑动
106浏览 • 1回复 待解决
HarmonyOS web组件拦截返回手势
84浏览 • 1回复 待解决
HarmonyOS 关于stack组件手势遮盖问题
13浏览 • 1回复 待解决
HarmonyOS 如何从子组件控制手势分发
535浏览 • 1回复 待解决
HarmonyOS 双向滑动Slider组件
193浏览 • 1回复 待解决
HarmonyOS 滑动组件问题
176浏览 • 1回复 待解决