HarmonyOS 自定义滑动组件

静态效果如截图,查看了基础组件中的slider单也只能支持单block无法像图中所示有两个block进行区间选择。请问一下是否有可替代的方案呢?

HarmonyOS 自定义滑动组件 -鸿蒙开发者社区

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

目前没有双向的组件,需要自定义才能实现,可以试下参考此demo:

https://gitee.com/harmonyos-cases/cases/blob/master/CommonAppDevelopment/feature/dragtoswitchpictures/README.md

手势实现滑动效果的方式

拖动手势文档:

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

Column(){
  Stack(){
    Image($r('app.media.background'))
      .width('100%')
      .height('20vp')
    Image($r('app.media.ic_left'))
      .width('30vp')
      .height('30vp')
      .translate({ x: this.offsetX, y: this.offsetY, z: 0 }) // 以组件左上角为坐标原点进行移动
        // 左右拖动触发该手势事件
      .gesture(
        PanGesture(this.panOption)
          .onActionStart((event: GestureEvent) => {
            console.info('Pan start')
          })
          .onActionUpdate((event: GestureEvent) => {
            if (event) {
              if(this.positionX + event.offsetX > this.positionX1) {
                return;
              }
              this.offsetX = this.positionX + event.offsetX
            }
          })
          .onActionEnd(() => {
            this.positionX = this.offsetX
            console.info('Pan end')
          })
      )

    Image($r('app.media.ic_right'))
      .width('30vp')
      .height('30vp')
      .translate({ x: this.offsetX1, y: this.offsetY, z: 0 }) // 以组件左上角为坐标原点进行移动
        // 左右拖动触发该手势事件
      .gesture(
        PanGesture(this.panOption1)
          .onActionStart((event: GestureEvent) => {
            console.info('Pan start')
          })
          .onActionUpdate((event: GestureEvent) => {
            if (event) {
              if(this.positionX1 + event.offsetX < this.positionX) {
                return;
              }
              this.offsetX1 = this.positionX1 + event.offsetX
            }
          })
          .onActionEnd(() => {
            this.positionX1 = this.offsetX1
            console.info('Pan end')
          })
      )
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 自定义滑动
212浏览 • 1回复 待解决
HarmonyOS Slider滑动自定义tips
211浏览 • 1回复 待解决
HarmonyOS 定义自定义组件
207浏览 • 1回复 待解决
自定义日期滑动选择器弹窗
577浏览 • 1回复 待解决
HarmonyOS 自定义组件问题
636浏览 • 1回复 待解决
自定义组件嵌套子组件
9673浏览 • 3回复 待解决
HarmonyOS 自定义组件的使用
18浏览 • 1回复 待解决
HarmonyOS 自定义tabbar组件开发
13浏览 • 1回复 待解决
HarmonyOS ArkUI加载自定义组件
587浏览 • 1回复 待解决
HarmonyOS 如何自定义布局组件
18浏览 • 1回复 待解决
HarmonyOS 如何自定义toast组件
221浏览 • 1回复 待解决
HarmonyOS 跨模块引用自定义组件
160浏览 • 1回复 待解决
HarmonyOS如何自定义视频组件样式
602浏览 • 1回复 待解决
HarmonyOS 组件是否支持自定义事件
252浏览 • 1回复 待解决
HarmonyOS CoverFlow效果自定义组件实现
536浏览 • 1回复 待解决