HarmonyOS Scroller滚动结束后记录当前位置

需求场景:游戏首页横屏显示,并且首页第一次显示加载最上面部分,可以通过手势向上或者向下滑动,当滑动停止之后记录当前滚动的位置,如果用户在当前位置退出APP,下次进来进入到滚动最后记录的位置.

1.如何记录滚动最后停止位置,()这个地图是横屏大约3个以上大小

2.下一次如何滚动到指定位置

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

建议在onScrollStop事件中通过当前Scroll组件绑定的scroller的currentOffset获取当前的滚动偏移量,再通过持久化保存此数据,如使用首选项在aboutToDisappear生命周期中进行持久化,在通过initialOffset设置初始化滚动偏移量,具体使用可以参考文档:

initialOffset:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-scroll-V5#initialoffset12

currentOffset:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-scroll-V5#currentoffset

应用数据持久化:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-data-persistence-overview-V5

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%')
}
.onScrollStop(() => {
  this.xOffset = this.scroller.currentOffset().xOffset;
  this.yOffset = this.scroller.currentOffset().yOffset;

})
.initialOffset({
  xOffset: this.xOffset,
  yOffset: this.yOffset
})
分享
微博
QQ
微信
回复
2天前
相关问题
会话的结束时间怎样记录
3232浏览 • 1回复 待解决
HarmonyOS使用Web组件如何监听滚动位置
624浏览 • 2回复 待解决
HarmonyOS List列表滚动到指定位置
31浏览 • 1回复 待解决