杀死AutomaticKeepAliveClientMixin的状态

时间:2019-12-30 01:06:17

标签: flutter

在某个阶段是否有任何方法可以杀死AutomaticKeepAliveClientMixin的状态?

背景故事: 我正在建立多页表单。由于当前步进器的水平线已断开,因此决定使用PageView,垂直线看起来不太好-用户看不到那里还有多少步。导航时需要保持每个页面的状态,因此我选择了AutomaticKeepAliveClientMixin。但是我希望在用户使用完“表单”(在这种情况下,是在PageView的末尾)后清除状态。

1 个答案:

答案 0 :(得分:0)

我从未尝试过,但是以下方法应该可以工作:

如果您使用的是AutomaticKeepAliveMixin,那么您还实现了其wantKeepAlive方法。现在,您可能只是返回一个静态true值以保留您的状态。

实际上,应该检查是否要保留页面状态,而不是始终返回true。每当这种情况发生变化时,都应该调用updateKeepAlive来通知小部件的KeepAlive祖先,该小部件的后代之一已经“改变了主意”。

至少,documentation for AutomaticKeepAliveMixin建议这样做。