一尘不染

在Flutter PageView中切换页面时丢失小部件状态

flutter

我在由PageController管理的PageView中有一系列有状态的小部件。我pageController.jumpToPage(index)用来切换页面。切换页面时,所有状态似乎都在窗口小部件中丢失,就好像是从头开始重新创建时一样。我已经尝试keepPage: true在PageController中使用,但这似乎没有任何效果。这是PageView的预期行为,还是我做错了什么?任何建议表示赞赏,谢谢!


阅读 492

收藏
2020-08-13

共1个答案

一尘不染

keepPage: true是默认行为;这意味着PageController如果销毁并重新创建页面,它将记住该页面所在的页面。这不是你想要的。

而是将特定PageStorageKey于页面的内容传递给页面的构造函数。这有助于Flutter为您的页面提供一个独特的存储桶。然后,在您State要恢复到先前状态的状态中,可以使用PageStorage.of(context)获取存储分区,您可以read在更改存储区时将值从in
initStatewrite值更改为。您可以在ExpansionTile中看到一个示例。

2020-08-13