返回上一页会失去滚动位置

问题描述

我正在开发ionic 4应用程序。

我有一个如下列表:

<ion-list>
  <ion-item *ngFor="let item of listItems">
    <button ion-item (click)="openListItem(item)">
    [...]
    </button>
  </ion-item>
</ion-list>

列表的openListItem()文件中的.ts方法

openListItem() {
this.router.navigateByUrl('/detailPage')
}

进入详细信息页面并返回列表后,我失去了列表中的滚动位置。

我使用ionViewDidEnter()最初是在列表页面上调用列表的方法,因此,每次进入该页面时,它都会调用列表。

有什么办法可以保持滚动位置不变?

解决方法

您可以保存当前滚动位置,并在触发路线时重新应用。

https://ionicframework.com/docs/api/content#properties

获取Y偏移,然后

this.content.scrollToPoint(0,SAVED_Y_OFFSET);