HarmonyOS swiper手写一个惯性怎么实现

使用swiper展示多个数据,允许循环展示,此时手动滑动时没有惯性,swiper当前时不支持惯性的,想要实现一个手写的惯性效果,能提供思路么

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

可以在swiper上添加滑动手势监听,监听到手势结束后,根据返回的手势信息中的结束速度,判断是否需要继续滑动,简单示例可以这样

Swiper(this.swiperController) {}
.parallelGesture( // 同步手势
  PanGesture().onActionEnd(e=>{
    // 手势结束,获取当前的速度
    let velocityX = e.velocityX || 0
    console.info(velocityX.toString())
    if(velocityX > 0){
      // 向右移动,有速度,继续向右移动,根据条件判断还需要移动几个,目前默认3个,可以根据速度和每个宽度判断,不能使用changeIndex,因为可以循环播放,所以会出现index比当前大,这时候会出现向右移动的情况,不可取
      this.swiperController.showPrevious()
      this.swiperController.showPrevious()
      this.swiperController.showPrevious()
    }else if(velocityX < 0){
      // 向左移动,有速度,继续向左移动,根据条件判断还需要移动几个,目前默认3个
      this.swiperController.showNext()
      this.swiperController.showNext()
      this.swiperController.showNext()
    }
  })
)
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS swiper怎么添加惯性
25浏览 • 1回复 待解决
一个页面怎么实现多个AbilitySlice?
14622浏览 • 5回复 待解决
我想用XML布局增加一个图片怎么实现
11055浏览 • 4回复 待解决
HarmonyOS 怎么把两PixelMap合成一个
296浏览 • 2回复 待解决
HarmonyOS 如何实现一个遮罩层
626浏览 • 1回复 待解决
HarmonyOS 如何实现一个转圈效果
992浏览 • 2回复 待解决
HarmonyOS 手写签名实现
17浏览 • 1回复 待解决
HarmonyOSobject怎么拼接成一个
245浏览 • 1回复 待解决
ArkTS如何实现一个底部弹窗?
1040浏览 • 1回复 待解决
如何实现一个下拉菜单?
892浏览 • 1回复 待解决
如何实现一个折叠组件
1167浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人