HarmonyOS scroller.currentoffset位移获取问题

在onScrollStop回调时,通过scroller.currentOffet.yOffset获取不到正确的滑动距离;

需要获取到正确的滑动位移;

HarmonyOS
2024-08-08 17:49:47
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

参考正常demo如下:

@Entry 
@Component 
struct ScrollExample { 
  scroller: Scroller = new Scroller() 
  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
  @State yOffset: number = 0 
 
  build() { 
    Stack({ alignContent: Alignment.TopStart }) { 
      Scroll(this.scroller) { 
        Column() { 
          ForEach(this.arr, (item: number) => { 
            Text(item.toString()) 
              .width('90%') 
              .height(150) 
              .backgroundColor(0xFFFFFF) 
              .borderRadius(15) 
              .fontSize(16) 
              .textAlign(TextAlign.Center) 
              .margin({ top: 10 }) 
          }, (item: string) => item) 
        }.width('100%') 
      } 
      .scrollable(ScrollDirection.Vertical) // 滚动方向纵向 
      .scrollBar(BarState.On) // 滚动条常驻显示 
      .scrollBarColor(Color.Gray) // 滚动条颜色 
      .scrollBarWidth(10) // 滚动条宽度 
      .friction(0.6) 
      .edgeEffect(EdgeEffect.None) 
      .onScroll((xOffset: number, yOffset: number) => { 
        console.info(xOffset + ' ' + yOffset) 
      }) 
      .onScrollEdge((side: Edge) => { 
        console.info('To the edge') 
      }) 
      .onScrollStop(() => { 
        if (this.scroller != undefined && this.scroller?.currentOffset() != undefined) { 
          this.yOffset = this.scroller.currentOffset().yOffset ?? 0; 
          console.info('Scroll Stop') 
        } 
      }) 
 
      Button('Y轴偏移量:' + this.yOffset.toString()) 
        .height('5%') 
        .onClick(() => { 
 
        }) 
        .margin({ top: 10, left: 20 }) 
 
    }.width('100%').height('100%').backgroundColor(0xDCDCDC) 
  } 
}
分享
微博
QQ
微信
回复
2024-08-08 20:39:50
相关问题
Scroller的fling实现有什么好的方案
676浏览 • 1回复 待解决
HarmonyOS router传参获取问题
373浏览 • 1回复 待解决
HarmonyOS 获取Resource中的value问题
266浏览 • 1回复 待解决
HarmonyOS获取相册视频的宽高问题
255浏览 • 1回复 待解决
HarmonyOS调用相机设备API获取失败问题
248浏览 • 1回复 待解决
socket连接NetAddress获取问题
285浏览 • 1回复 待解决
关于获取应用列表权限问题
3346浏览 • 1回复 待解决
对于获取权限的api的问题
1688浏览 • 1回复 待解决
focusControl.requestFocus获取焦点的问题
45浏览 • 1回复 待解决
关于如何获取时钟的id的问题
5672浏览 • 1回复 待解决
关于 onArrange中获取到的参数的问题
4853浏览 • 1回复 待解决
JS 获取控件位置并动态赋值的问题
3815浏览 • 1回复 待解决
获取sequence列表的问题有知道的吗?
3119浏览 • 2回复 待解决