在Flutter PageView中切换页面时丢失小部件状态
我在由PageController管理的PageView中有一系列有状态的小部件。我pageController.jumpToPage(index)
用来切换页面。切换页面时,所有状态似乎都在窗口小部件中丢失,就好像是从头开始重新创建时一样。我已经尝试keepPage:
true在PageController中使用,但这似乎没有任何效果。这是PageView的预期行为,还是我做错了什么?任何建议表示赞赏,谢谢!
回答:
keepPage: true
是默认行为;这意味着PageController
如果销毁并重新创建页面,它将记住该页面所在的页面。这不是你想要的。
而是将特定PageStorageKey
于页面的内容传递给页面的构造函数。这有助于Flutter为您的页面提供一个独特的存储桶。然后,在您State
要恢复到先前状态的状态中,可以使用PageStorage.of(context)
获取存储分区,您可以read
在更改存储区时将值从in
initState
和write
值更改为。您可以在ExpansionTile中看到一个示例。
以上是 在Flutter PageView中切换页面时丢失小部件状态 的全部内容, 来源链接: utcz.com/qa/415057.html