鸿蒙组件卡片重叠拖动

卡片重叠拖动效果.
在其他端经常做. 大致原理就是, N个View重叠在一起, 最上面的是100%, 后面的都适量缩放, 例如90%的宽高, 再向上偏移一部分, 露出一个上方的顶.

给最前方的View增加一个手势, 通过手势的X / Y的偏移, 基于View的X,Y的fram增减, 以达到View跟随手势拖动. 最上方的View移走了. 下方的View需要根据Y轴的变化比例, 扩大到100%的缩放比例.

第一个View
宽100%
高100%

第二个View
宽90% + 偏移比例 x 10%
高90% + 偏移比例 x 10%
framY -20 + 偏移比例 x 20

偏移比例, 就是Y轴上, 拖动的具体数值, 和最大拖动数值的比例
像是, 上下拖动100时, 后面的View就变成100%了, 那拖动比例就是 Math.abs(offsetY) / 100
至此, 就完成了拖拽移动, 后面的View跟随变化



最后,增加上,当拖动超过阈值时,让第一个 view 消失,后面数据更新,就可以了.


PS: 本地运行Preview期间, 发现一个bug. 0.7 + 0.1 还是等于0.1
不知道是我这的bug, 还是所有人都会遇到.
我只好自己写了个新的方法, 处理这个情况

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容