我正在使用带有两个选项卡的TabBarView,每个选项卡都显示一个有状态小部件——让我们称它们为主小部件和配置小部件。
配置小部件用作主小部件的“配置部分”——我使用它来设置主小部件中的背景颜色和 URL 变量等内容,该变量用于从 Web 服务中获取数据。
Main Widget 有一个由该 Web 服务填充的 ListView。我正在使用Bloc模式将事件从一个小部件发送到另一个小部件,这就是配置小部件将 URL 值发送到主小部件的方式——一个事件被触发,由 bloc 提供成为一个“状态”对象Main Widget 可以在其构造函数中读取并用于构建 ListView 的新 URL。
现在,如果我没有更改配置小部件中的 URL,我在主小部件中使用wantKeepAlive机制来避免重新填充 ListView——如果我不这样做,每当我返回其选项卡时,主小部件都会重建,即使我没有更改配置小部件中的任何内容。
我想要做的是有选择地设置该值,以便在配置中更改 URL 时,将wantKeepAlive
值更新为,false
以便 ListView使用新 URL 重建。但是当它完成构建时,将wantKeepAlive
值设置回true
,因此不会进行重建,直到下一个 URL 更改。
方法完成后是否可以调用生命周期方法build()
,我可以在哪里设置wantKeepAlive
设置?我认为在构建方法本身中这样做是行不通的。欢迎提出建议,谢谢。