【发布时间】:2019-11-19 06:59:12
【问题描述】:
我正在制作一个应用程序并显示循环进度指示器,我使用了 modal_progress_hud 库,当我将 inAsyncCall 的状态设置为真或假时,它会在 modal_progress_hud 内重建其所有子小部件。而且我不想一次又一次地重建所有的 UI。它通过增加 GPU 的使用来降低应用程序的效率。有没有其他方法可以让它变得更好,我们只需更改属性并仅重建小部件的该属性,而不是整个屏幕和其中的小部件。
bool circularindicator = false;
Color circularColor;
double circularOpacity;
child: ModalProgressHUD(
inAsyncCall: circularindicator,
child: body,
color: circularColor,
opacity: circularOpacity,
),
在正文中,我们在列表视图中拥有所有小部件。 在按下登录按钮后,我们调用 showProgress() 方法并设置状态并重建小部件。
@override
showProgress() {
setState(() {
circularindicator = true;
circularOpacity = 0.5;
circularColor = Colors.grey;
});
}
【问题讨论】:
-
check Flutter: Don’t Fear the Garbage Collector - 它说:“那么 Flutter 开发人员应该害怕垃圾收集器吗?随着 Flutter 创建和销毁对象的频率很高,开发人员是否应该采取措施限制这种行为?不是很少看到新的 Flutter 开发人员创建对他们知道不会随时间改变的小部件的引用,并将它们置于状态,以便它们不会被破坏和重建。不要这样做。”
标签: user-interface flutter dart rebuild state-management