0

让我从解释问题开始。我有几个按钮是根据从服务器获取的数据创建的。在每个按钮上单击我需要创建并显示一个小部件,它将向我展示一些数据(这个小部件也是动态构建的)。此小部件的状态必须在应用程序的生命周期内保留。(例如,如果我单击另一个按钮并显示不同的小部件,我需要能够单击第一个按钮并在其保留状态下显示第一个小部件)。按钮的数量也可以在应用程序生命周期内更改。

我尝试使用 IndexedStack 来实现这一点,但是当按钮的数量发生变化时,我需要将“页面”添加到 IndexedStack,因此我需要重新创建一个新的 IndexedStack,它将包含我的一些旧小部件,所以我从列表中提取小部件或根据需要创建新的。这很好用,除了 Flutter 在存储在列表中的小部件上调用 dispose() 方法。我尝试使用 AutomaticKeepAliveClientMixIn 但没有帮助。

我猜这与小部件与父级分离有关,但是当我将它们重新附加到新父级(新索引堆栈)时,Flutter 无法正确解决这一问题。

有任何想法吗?

4

1 回答 1

0

尝试将数据存储到本地存储或 sqlite 以获取持久性数据。

于 2020-04-09T20:44:42.033 回答